Java Tomcat启动忽略调试的jpda选项
我试图在调试模式下运行Tomcat7。如果我键入Java Tomcat启动忽略调试的jpda选项,java,macos,tomcat,jpda,Java,Macos,Tomcat,Jpda,我试图在调试模式下运行Tomcat7。如果我键入/catalina.sh jpda starttomcat运行时就好像不存在jpda选项并输出: Michaels-MacBook-Pro:bin clairewilgar$ ./catalina.sh jpda start Using CATALINA_BASE: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS Using CATALINA_HOME: /Users/clair
/catalina.sh jpda start
tomcat运行时就好像不存在jpda选项并输出:
Michaels-MacBook-Pro:bin clairewilgar$ ./catalina.sh jpda start
Using CATALINA_BASE: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS
Using CATALINA_HOME: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS
Using CATALINA_TMPDIR: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/temp
Using JRE_HOME: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Using CLASSPATH: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/bin/bootstrap.jar:/Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/bin/tomcat-juli.jar
也不会改变我的卡塔琳娜选择或任何事情。如果我试图通过Eclipse进行连接,就会出现错误
“启动工作流”遇到问题。无法连接到远程VM。连接被拒绝
我曾尝试将端口更改为jpda端口至8001,但没有成功,我曾尝试在调用catalina.sh之前在终端中声明jpda选项,但这没有任何区别。我的catalina.sh JPDA行如下:
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
JPDA可能无法运行还有其他原因吗?我正在使用OSX(MountainLion),如果有任何与此相关的东西我可能错过了。提前谢谢
编辑:运行
/catalina.sh jpda start
的My catalina.out文件如果从startup.sh
启动,则会出现相同的问题?请记住,您可能必须编辑startup.sh
,使其使用jpda
参数调用catalina.sh
您是否尝试过手动设置变量?我从来没有遇到过这个问题,但我倾向于这样做
此外,如果上述变量已在您的环境中设置,则不会在catalina.sh
脚本(-z
)中重置它们
您还可以尝试在bin
文件夹中添加setup.sh
,其中包含:
JPDA_TRANSPORT="dt_socket"
JPDA_ADDRESS="8000"
JPDA_SUSPEND="n"
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
通过此更改,您只需使用
startup.sh start
启动tomcat,这可能是IPv4与IPv6的问题
netstat -an | grep 8000
我曾经遇到一个问题,无法连接到“localhost”端口13306,但可以连接到“127.0.0.1”端口13306
当进程侦听IPv4地址时,localhost映射到IPv6地址您可以在catlina.sh中更改此行:
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
致:
或者在调用catalina.sh之前将env var“JPDA_SUSPEND”设置为“y”我也遇到了同样的问题,因为我的startup.sh文件包含以下行:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
因此,命令./startup.sh jpda start作为start jpda start发送到catalina.sh,因此调试选项被忽略,所以我不得不将此行更改为
exec "$PRGDIR"/"$EXECUTABLE" "$@"
问候,,
Borys更改此文件的最后一行:
“startup.sh”
(“startup.bat”
如果您使用的是Windows)
而不是使用这个:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
使用以下命令:
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
同样的问题是的,我以前看过那个维基,但它似乎没有任何区别。也尝试手动设置变量,但不知何故还是忽略了它,只运行普通的Tomcat。它似乎与我不调用jpda时的情况完全相同,没有提到它或jdwp,也没有错误。请看这里:我刚刚下载了Tomcat7.0.42(Windowsx86,在cygwin中执行),它运行良好。使用
jpda start
和在setup.sh
中设置环境变量,只需使用startup.sh start
启动即可。香草野猫对你有用吗?没有额外的部署。嗯,香草(没有战争或任何东西)部署任何时候,但它也不调用jpda。。。我检查了防火墙,但没有任何东西阻止它,所以不确定还有什么可以做。在CATALINA.sh
中启动JVM之前(我相信是在第386行附近),您是否可以尝试添加echo$CATALINA_OPTS
,看看它说了什么?
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"