一.Tomcat远程调试是为了什么?
伴随系统上线后,由于服务器的上运行的项目具有封闭性,只能通过操作日志以及错误日志分析来定位问题,但有时候,错误日志没有针对性,给开发人员分析问题带来了很大的难度和不便,如果开发人员能够对线上的项目进行实时调试,那么问题就会迎刃而解,tomcat远程调试就有了发挥的作用!
二.Tomcat远程调试的条件有哪些?
1.服务器上正在运行的项目。
2.本地eclipse上有与服务器源代码相同的项目。
三.配置服务器上的tomcat
1.找到tomcat的bin文件的路径,例如我的路径为:C:\user-lml\Tomcat\apache-tomcat-9.0.12\bin
2.在bin路径下新建一个类型为bat的文件,例如我的名字为debug.bat,里面放入如下配置:
SET JAVA_HOME=D:\Program Files\Java\jdk1.8.0_161
SET TOMCAT_HOME=C:\Program Files\Tomcat 8.5
set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=9000
catalina.bat jpda start
3.双击debug.bat启动项目,如果想直接通过debug.bat去启动一个项目,需要在server.xml进行如下配置,
例如我的路径为:C:\user-lml\Tomcat\apache-tomcat-9.0.12\conf下的server.xml,如下图所示,在Host标签下新增Context 标签的内容,图中圈出来的地方需要自行修改为你自己的实际配置:
配置文字如下所示:
<Context crossContext="true" docBase="D:\eclipse-workspace\monitorweb_t\WebRoot"
path="" reloadable="true">
<Resource TimeBetweenEvictionRunsMillis="60000" auth="Container"
driverClassName="com.mysql.jdbc.Driver" factory="com.alibaba.druid.pool.DruidDataSourceFactory"
filters="stat,mergeStat" initialSize="20" logAbandoned="true"
maxActive="120" maxIdle="40"
maxPoolPreparedStatementPerConnectionSize="20" maxWait="60000"
minIdle="20" name="jdbc/press" password="root"
poolPreparedStatements="true" removeAbandoned="true"
removeAbandonedTimeout="1800" testWhileIdle="true" type="javax.sql.DataSource"
url="jdbc:mysql://192.168.36.7:3306/zcm?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"
username="root" validationQuery="select 1 from dual" />
<!-- 192.168.36.7 -->
</Context>
4.启动成功后会在tomcat控制台打印如下图所示的内容并且项目启动成功,则服务器上的tomcat就配置ok啦:
四.最后在本地eclipse打开如下所示的窗口,配置信息进行debug即可,如下图所示:
右击项目鼠标移到 Debug As上打开 Debug configurations窗口,其中Host是服务器的ip,项目必须和服务器上的项目源代码相同,Port必须是你自己在debug.bat中设置的set JPDA_ADDRESS=9000的值,点击Debug按钮即可,在本地打断点,运行服务器上的客户端程序,本地可以追踪服务器运行的代码!