IDEA社区版本的Tomcat应用调试基本思想都是Remote调试。通过Attach to remote JVM实现断点调试。
原理基本两步
I:手动
Step 1: 启动Tomcat
启动Tomcat时带上参数,请着重注意address=9999
=dt_socket,address
如果纯粹手工去做,你可能就需要去修改Tomcat安装目录中bin/catalina.sh中的:
set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999"
将war包拷贝到tomcat的webapps下,再将参数配置好后启动:
catalina.bat start
如果不想拷贝war包,你也可以在tomcat安装目录下增加:/conf/Catalina/localhost/ROOT.xml文件,内容配置:
<!--
Note that:
1. Assume your project directory is "/home/user/code/hello-world/";
2. The ROOT "/" context path is used.
-->
<Context
docBase="/home/user/code/hello-world/"
path=""
reloadable="true"
/>
详情可参考:https://stackoverflow.com/questions/7276989/how-to-set-the-context-path-of-a-web-application-in-tomcat-7-0
Step 2: Attach
![715c9c109eb23664f3f7b8dbb1423b2c.png](https://i-blog.csdnimg.cn/blog_migrate/bba35d08102a91b7a98fb893b1a46df2.jpeg)
IDEA中选择【Run】->【Debug】
![bf6b00a994d9512c7efa2d91cd97c1b4.png](https://i-blog.csdnimg.cn/blog_migrate/3423d8f8f29678bdea73e192dfce3ec2.png)
II:稍微自动些
<properties>
在项目pom.xml中配置了如上的插件信息后,maven工具栏会出现:
![46bb2a5dde214a95c8304a865d3dacf6.png](https://i-blog.csdnimg.cn/blog_migrate/96be638093e89a6f15d63ad97098988f.jpeg)
此时,你只要运行cargo:run就会自动去下载tomcat,并将当前项目打包到tomcat的webapps下以ROOT包运行。
再接着跑第二步就OK了!
注
tomcat8的maven插件似乎只能跑tomcat8:deploy,跑tomcat8:run跑不起来。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<version>3.0-r1655215</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<username>tomcat</username>
<password>tomcat</password>
<update>true</update>
<path>/</path>
</configuration>
</plugin>
为配合deploy,还需要配置tomcat的一些用户和权限,tomcat安装 目录下/conf/tomcat-users.xml新增如下配置:
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="admin-gui" />
<role rolename="admin-script" />
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,admin-gui,admin-script" />