我有一个ubuntu服务器,我的应用程序运行在tomcat7中。现在我有两种远程调试方法,作为一名学习者,我想知道两者之间的技术区别是什么,还是两者是相同的,而我遗漏了什么?
方法1:打开文件/etc//tomcat7 7
#要启用远程调试,请取消对以下行的注释。 #您将能够在端口8000上使用java调试器。 #JAVA_OPTS="${JAVA_OPTS} -Xdebug Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n“
方法2
导出CATALINA_HOME=/usr/share/tomcat7 7出口CATALINA_BASE=/var/lib/tomcat7 7/ export JPDA_ADDRESS=8090导出JPDA_ADDRESS=8090 现在转到tomcat主文件夹/usr/share/ tomcat 7/bin,并编写以下行以在调试模式下运行tomcat。 #./catalina.sh jpda开始
方法2的另一件事是,当我启动jpda并且我的tomcat服务也在端口80上运行时,我被连接拒绝了,当我停止tomcat时,我能够远程连接到8090。WHy是这样吗?
发布于 2015-05-27 09:56:49
从技术上讲,它们是相同的,指的是catalina.sh:
if [ "$1" = "jpda" ] ; then
if [ -z "$JPDA_TRANSPORT" ]; then
JPDA_TRANSPORT="dt_socket"
fi
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="8000"
fi
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
if [ -z "$JPDA_OPTS" ]; then
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
fi
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
shift
fi在第二个问题上,当通过shutdown.sh阻止tomcat时,jpda端口仍然在侦听,您可以使用linux命令netstat或lsof进行检查。我也遇到过同样的问题,我不知道为什么tomcat不处理它。
端口80上拒绝连接的错误可能与jpda选项无关。jdwp是JVM标志,不仅tomcat而且任何其他java应用程序都可以使用它。
https://stackoverflow.com/questions/30453928
复制相似问题