如果我们想要在远程服务器上, 来调试Tomcat自身的话, 那应该如何做呢. 今天本想为Tomcat添加一个功能时, 发现配置一直没生效, 而且Tomcat一直就打印Found no logging.properties. 实在没办法, 就想到远程调试一下Tomcat自身.

修改启动参数

复制一个startup.sh, 假设复制后的文件名为debug.startup.sh

将原文件的

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

修改为以下的内容:


export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=y

exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

即可.

启动

直接运行debug.startup.sh即可.

这时,你会发现, 它在启动的时候, 会停留在以下类似信息这里, 等待你的调试器的连接了:

Listening for transport dt_socket at address: 8000

这时, 通过 IDE 来进行远程Debug即可.

关于如何将Tomcat源码导入到IDE中, 可以参考/2016/06/27/Tomcat-8-源码学习一之导入到IDEA/

这时就可以进行你的debug了. 这样子,Tomcat出现的问题, 都可以非常清楚地通过Debug来详细了解Tomcat内部的处理情况了.