我尝试远程debugging在Linux中运行的Tomcat Web应用程序,我启动了Tomcat:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8111,server=y,suspend=n"
在catalina.sh中:
... ... ... # ----------------------------------------------------------------------------- # OS specific support. $var _must_ be set to either true or false. cygwin=false darwin=false os400=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin*) darwin=true;; OS400*) os400=true;; esac JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8111,server=y,suspend=n" # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG" ]; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done ... ... ...
然后我启动tomcat:
Tomcat/bin > catalina.sh jpda start
当我做netstat -a | grep 8111我得到:
tcp 0 0 *:8111 *:* LISTEN
在Windows中,IM使用Eclipse版本:Mars.1(4.5.1)我configuration了远程debugging
按下debugging,我看到在服务器和在Windows日食这样的连接:
而在Linux服务器上,当我做netstat -a | grep 8111我看到:
tcp 0 0 linux:8111 my.pc.ip.66:62285 ESTABLISHED
我在eclipse中设置了所有的断点,源码是一样的,但是没有断点在弯腰……这是一个错误吗?
最后的截图是保证你已经连接到你的Tomcat。 为了停止你的任何断点,你需要锻炼你已经设置了断点的代码。通常只要使用你的应用程序就可以了。
由于某些原因,Eclipse有时不能设置断点。 当它设置成功时,在断点上出现一个小滴答,表明它是活跃的 。
如果一个特定的类没有加载,或者还有其他一些问题,那么这个断点将不会被打勾,并且将会保持不活动状态 。
确保您的断点处于活动状态。 如果没有,请确保您的项目配置(您用来进行调试启动配置的配置)与部署到Tomcat的WAR匹配。
如果这不起作用,那么可能会有不同的编译选项,用于构建部署到Tomcat的应用程序,例如没有行号。 尝试在方法而不是指令上设置断点。 如果可行,请在编译时将调试选项添加到编译步骤中,以便包含行号。 这会让你设置断点。