环境

apache-tomcat-7.0.47 Intellij IDEA 2016 远程debug

tomcat 的Catalina.sh 里面有个参数 JPDA_ADDRESS=”8000”,默认为8000。启动tomcat时,用 ./catalina.sh jpda start 代替原本的 ./startup.sh 来启动,然后在Intellij 里面做如下配置: 保存后,点击debug就能连接到服务器上tomcat的8000端口并打印出连接成功的信息。 当服务器tomcat停止,或手动点击Intellij的断开时,会打印出断开连接的信息 因为服务器8000端口被占用,我这里修改了8000端口为6666 远程部署

远程部署一直有问题,现在可以拷贝web编译目录到服务器了,但是不能直接通过IDE启动和停止。 主要参考了stackoverflow的这一个回答: http://one.ifof1.cn/

服务器还是Linux,Catalina.sh 我尝试着加了如下三个配置,都没有成功,最后发现是没有双引号,加了以后可以了。这三个参数配置分别为

<!-- 第一个参数JAVA_OPTS,因为引用了声明的$JAVA_OPTS,所以这个参数要加在JAVA_OPTS参数声明的后面 --> JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1099"

1
2

1
2

<!-- 第二个参数 --> CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

1
2
3
4
5

1
2
3
4
5

<!-- 第三个参数 --> JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

1
2
3
4
5

1
2
3
4
5

还有个回答中提到的一个参数,是在terminal里面输入的命令,不用直接加在Catalina.sh 里面。

#控制台 export 输出环境变量参数 export JAVA_OPTS="-Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

1
2
3
4
5

1
2
3
4
5

在上述基础上,Intellij 的remote tomcat配置如下 然后按照上面图片的配置,其中path from root 的路径(服务端tomcat的webapps路径)要修改一下,不然会多出来一个aucs-web,修改后正确路径为

/%TOMCAT_HOME%/webapps/

D:\workspace\IDEA\jieo\aucs-web\target\aucs-web

1
2
3

1
2
3

或者:

/%TOMCAT_HOME%/webapps/aucs-web

D:\workspace\IDEA\jieo\aucs-web\target\

1
2
3

1
2
3

这时候,在服务端启动tomcat,再到IDE点击 Run 或 debug 时能够拷贝(部署)文件到服务器,debug模式需要加另外一个配置:即上面讲的远程debug设置的端口8000(我改成了6666) 参考资料主要有以下几个:

http://www.codeweblog.com/ubuntu10-04-remote-tomcat-debug-configuration-under-the-idea8-0/

http://www.codeweblog.com/stag/intellij-idea-remote-tomcat-deploy/

jetbrans官网,链接忘了

还有就是Intellij IDEA 中F1的帮助手册