我试图在调试模式下运行Tomcat 7。如果我键入./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
并且不会更改我的CATALINA_OPTS或其他任何内容。如果我尝试通过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(Mountain Lion),如果有任何与我可能错过的相关的内容。提前谢谢。
编辑:运行./catalina.sh jpda start
的我的catalina.out文件位于http://pastebin.com/Z4GSvckr
答案 0 :(得分:6)
如果从startup.sh
启动它,会出现同样的问题吗?请记住,您可能需要修改startup.sh
,以便使用catalina.sh
参数调用jpda
。
您是否尝试手动设置变量?我从来没有遇到过这个问题,但我倾向于做一些像wiki中描述的那样的事情。
此外,如果您的环境中已经设置了上述变量,则不会在catalina.sh
脚本(-z
)中重置这些变量。
您还可以尝试在包含以下内容的setup.sh
文件夹中添加bin
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。
答案 1 :(得分:1)
可能是IPv4与IPv6的问题。
netstat -an | grep 8000
我曾遇到过无法连接到“localhost”端口13306的问题,但可以连接到“127.0.0.1”端口13306
localhost在进程正在侦听IPv4地址时映射到IPv6地址
答案 2 :(得分:0)
您可以在catlina.sh中更改此行:
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
到:
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="y"
fi
或设置env-var" JPDA_SUSPEND"到" y" - 在致电catalina.sh之前
答案 3 :(得分:0)
我遇到了同样的问题,因为事实证明我的startup.sh文件包含以下几行:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
因此命令./startup.sh jpda start被发送到catalina.sh作为启动jpda start,因此调试选项被忽略,所以我不得不将此行更改为
exec "$PRGDIR"/"$EXECUTABLE" "$@"
此致 鲍里斯塔拉
答案 4 :(得分:0)
更改此文件的最后一行:"startup.sh"
("startup.bat"
如果您使用的是Windows)
而不是使用它:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
使用此:
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"