首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat启动忽略jpda选项进行调试

Tomcat启动忽略jpda选项进行调试
EN

Stack Overflow用户
提问于 2013-09-10 11:32:18
回答 5查看 18.6K关注 0票数 9

我试图在调试模式下运行Tomcat 7。如果我输入./catalina.sh jpda start tomcat,就会像jpda选项不存在一样运行,并输出:

代码语言:javascript
复制
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端口,但没有成功,在调用catalina.sh之前,我尝试在终端中声明JPDA选项,但这没有什么区别。我的catalina.sh JPDA系列如下:

代码语言:javascript
复制
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 (山狮),如果有任何相关的东西,我可能错过了。提前谢谢。

编辑:用于运行./catalina.sh jpda start的catalina.out文件位于http://pastebin.com/Z4GSvckr

EN

回答 5

Stack Overflow用户

发布于 2013-09-10 11:54:27

如果你从startup.sh开始的话,同样的问题?请记住,您可能必须编辑startup.sh,使其使用jpda参数调用catalina.sh

您是否尝试过手动设置变量?我从来没有这个问题在我的结尾,但我倾向于做一些类似于这个维基描述的事情。

另外,如果在您的环境中已经设置了上述变量,则不会在catalina.sh脚本(-z)中重置它们。

还可以尝试在包含以下内容的setup.sh文件夹中添加bin

代码语言:javascript
复制
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。

票数 6
EN

Stack Overflow用户

发布于 2013-09-19 09:58:03

这可能是IPv4对IPv6的问题。

代码语言:javascript
复制
netstat -an | grep 8000

我曾经遇到一个问题,我无法连接到"localhost“端口13306,但可以连接到"127.0.0.1”端口13306。

当进程侦听IPv6地址时,localhost被映射到IPv4地址。

票数 1
EN

Stack Overflow用户

发布于 2014-06-10 10:42:34

您可以在catlina.sh中更改这一行:

代码语言:javascript
复制
if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
fi

致:

代码语言:javascript
复制
if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="y"
fi

或者在调用JPDA_SUSPEND之前将env-var“catalina.sh”设置为"y“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18717831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档