debug war in IDEA
需求
把 JavaWeb 项目打包为war之后,在浏览器里访问 localhost:8080 (使用tomcat 8080端口),
或者访问 localhost:80 (配置了nginx代理,nginx端口为80),
希望debug到写的代码里
实施
修改 startup.sh
需要修改的文件是 tomcat的 /bin目录下的 startup.sh, catalina.sh
# vi startup.sh
startup.sh文件的最后一行,添加 jpda。
修改 catalina.sh
# vi catalina.sh
找到 JPDA_ADDRESS,把 localhost: 去除
上图是修改后的样子。
其中8000端口需要记住,后面会用到。
也可以写别的端口。
注意:此处的8000和tomcat的8080并没有什么联系。我们在访问访问浏览器时的端口是tomcat配置的端口。和这里的8000无关。
配置IDEA
-
点击 Edit Configutations
-
点击添加 Remote
-
可以修改Host,配置Port和 catalina.sh中写的一致。
-
在代码里设置断点。运行tomcat 然后点击debug
-
浏览器访问 localhost:8080/此处是你自己的项目路径
我这里使用的是tomcat默认的8080端口,实际情况看你自己配置的。
如果你配置了nginx,那么端口也可以自己指定。 -
之后会自动跳转到IDEA界面里的断点处
注意
当更新了代码后,
- maven clean/install
- restart tomcat
需要提前配置 tomcat/ server.xml
其中 docBase配置的文件当tomcat重启后会自动加载到 webapps/ 目录下,生成的文件名是 path配置的,
比如path="/abc", 那么最终会生成文件夹 /webapps/abc
参考
https://www.cnblogs.com/756623607-zhang/p/10778862.html
https://blog.csdn.net/xiaochengguo/article/details/90815858?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase