tomcat 7 远程debug

环境:

linux6.8 

tomcat 7.0 

jdk 7.6 

myeclipse 10

在web项上线联调的时候,由于各种原因调试比较麻烦,这个时候远程debug还是比较爽的。

首先:设置服务端

编辑 服务器端的tomcat 的 catalina.sh 文件,加上如下配置,address=8000端口号任意设置。

CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 

编辑好了之后直启动 catalina.sh ,sh catalina.sh start 

root@yumserver bin]# sh catalina.sh start 
Using CATALINA_BASE:   /home/ims/apache-tomcat-7.0.88
Using CATALINA_HOME:   /home/ims/apache-tomcat-7.0.88
Using CATALINA_TMPDIR: /home/ims/apache-tomcat-7.0.88/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/ims/apache-tomcat-7.0.88/bin/bootstrap.jar:/home/ims/apache-tomcat-7.0.88/bin/tomcat-juli.jar
Tomcat started.
[root@yumserver bin]# ps -ef|grep  tomcat
root      9243  8901  0 Aug28 pts/15   00:00:00 tail -f /home/ims/apache-tomcat-7.0.88/logs/catalina.out
root     27318     1 99 08:38 pts/19   00:00:06 /usr/bin/java -Djava.util.logging.config.file=/home/ims/apache-tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dignore.endorsed.dirs= -classpath /home/ims/apache-tomcat-7.0.88/bin/bootstrap.jar:/home/ims/apache-tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/ims/apache-tomcat-7.0.88 -Dcatalina.home=/home/ims/apache-tomcat-7.0.88 -Djava.io.tmpdir=/home/ims/apache-tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start
root     27339 11311  0 08:38 pts/19   00:00:00 grep tomcat
Listening for transport dt_socket at address: 8000

服务器打印信息可以看到 “-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n”信息,证明服务端设置成功。

接下来 设置客户端:

我使用的是 myeclipse 开发工具,直接上图。

722d4f057a0bb8e22845b928be685749585.jpg

设置完成,直接点击Debug 即可实现本地工具debug服务端代码了,这样可以看清楚代码流程和问题,非常方便。

转载于:https://my.oschina.net/u/3862440/blog/1935784

### Tomcat 配置远程调试步骤及参数 为了使 Tomcat 支持远程调试功能,需要按照以下方式进行配置: #### 1. 修改 `catalina.bat` 或 `catalina.sh` 对于 Windows 平台,编辑位于 `$TOMCAT_HOME/bin/` 目录下的 `catalina.bat` 文件;而对于 Linux/MacOS 平台,则需编辑同目录下的 `catalina.sh` 文件。 在文件中找到合适的位置(通常是在脚本开头部分),添加以下内容以启用远程调试选项: ```plaintext set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 ``` 此命令中的各个参数含义如下[^1]: - `-server`: 使用服务器模式的 JVM。 - `-Xdebug`: 启用调试支持。 - `-Xnoagent`: 不加载旧版调试代理。 - `-Djava.compiler=NONE`: 关闭 JIT 编译器优化以便更好地配合调试环境。 - `-agentlib:jdwp`: 加载 JDWP (Java Debug Wire Protocol) 实现用于远程或本地调试。 - **transport**: 定义前端与后端之间通信的方式。这里指定为 `dt_socket` 表明采用基于套接字的网络连接[^2]。 - **address**: 设定监听地址,默认可以绑定到任意 IP 地址并开放特定端口号供客户端接入。此处设为 `*:8000` 意味着接受来自任何主机对该服务发起的请求[^3]。 - **server**: 设置当前实例作为被调测方运行状态 (`y`) ,而非主动充当调试工具角色(`n`)。 - **suspend**: 控制应用程序启动行为。当其值设定成 `n` 则允许目标进程立即继续执行而无需等待外部干预; 如果改为 `y`, 将强制暂停直至有合适的 IDE 连接到该进程中为止[^4]. 完成上述更改之后保存文档退出编辑器即可生效. #### 2. 测试验证设置有效性 重启 Tomcat 服务确认新参数已被应用成功与否可以通过查看控制台输出日志或者尝试利用 Eclipse / IntelliJ IDEA 等开发环境中建立相应的 Remote Java Application Configuration 来检验实际效果. --- ### 示例代码片段展示如何定义这些属性于启动指令之中: ```bash # For Unix/Linux systems using shell script. export JAVA_OPTS="-Xms512m -Xmx1g \ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000" ./startup.sh ``` ```cmd :: For Windows batch file usage example. SET JAVA_OPTS=-Xms512m -Xmx1g ^ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 call startup.bat ``` 以上两段分别展示了不同操作系统下可能使用的做法之一种形式. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值