开发中有时候遇到一些特殊问题,希望能 Debug 到远程应用服务,JWDP( Java Debug Wire Protocol )就可以解决了这个问题。

War 配置

如果是一个 War 包部署在 Tomcat 中,可以这样配置:

  1. 编辑你要远程 Debug 那台 Tomcat 的 ${tomcat}/bin/startup.sh 文件
  2. 在 start 前面添加 jpda: exec “$PRGDIR”/“$EXECUTABLE” jpda start “$@”
  3. 修改远程 ${tomcat}/bin/catalina.sh 文件监听端口(可选),找到 localhost:8000 大概在334行,修改如下JPDA_ADDRESS=”54321”
  4. 在idea中配置,然后启动Debug

image.png

Jar 配置

如果是一个 Jar 应用,可以这样配置:

  1. 在启动脚本中加入这个参数 :

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=端口

  1. 启动应用,例如:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=54321 -jar test.jar


  1. 重复上面的第 4 步,在 Idea 中配置就可以了,控制台查看是否连接成功,这样你本地对远程服务发起一个请求可以在你打上断点的地方 Debug 到

注意事项

本地的代码和服务器上的代码要保持一致,否则行号、代码有差异,一点都不好调试。