在远程调试模式下启动tomcat时出错

Posted

技术标签:

【中文标题】在远程调试模式下启动tomcat时出错【英文标题】:Error during starting tomcat in remote debug mode 【发布时间】:2016-05-19 16:34:30 【问题描述】:

Tomcat 未以调试模式启动。获取以下日志。

C:\ApacheSoft\apache-tomcat-7.0.67\bin>catalina.bat jpda start
Using CATALINA_BASE:   "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_HOME:   "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_TMPDIR: "C:\ApacheSoft\apache-tomcat-7.0.67\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.7.0_79"
Using CLASSPATH:       "C:\ApacheSoft\apache-tomcat-7.0.67\bin\bootstrap.jar;C:\ApacheSoft\apache-tomcat-7.0.67\bin\tomcat-juli.jar"
=transport=dt_socket was unexpected at this time.

【问题讨论】:

这对我有帮助 serverfault.com/questions/634426/… 【参考方案1】:

C:\Program Files\Java\jdk1.7.0_79 中的空格字符会导致问题。 用短名称替换它可以解决问题。

执行命令dir c:\PROGRA~1\Java\jdk1.7.0_79,查看文件列表,验证PROGRA~1是否正确。如果没有,请尝试PROGRA~2 等等...

然后更改环境变量JAVA_HOMEJRE_HOME再试一次。

【讨论】:

你能粘贴catalina.bat的内容吗?我认为它已被修改并且有问题。【参考方案2】:

让我猜猜,您在 blog.trifork.com 上阅读了一个名为“如何从 INTELLIJ IDEA 中远程调试在 TOMCAT 上运行的应用程序”的链接。

说明在您的 setenv.bat 中为 Windows 执行此操作:

set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"

是的,那是行不通的。 catalina.bat 添加了自己的引号,因此最终尝试这样做:

if not ""-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"" == "" goto gotJpdaOpts

一个更好的计划是这样做:

set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n

我知道这是差不多一年前的事了,但我遇到了这个问题,最终不得不从 Tomcat 批处理文件中删除“@echo off”并自己追查这个问题。希望这会被投票通过,这样它就可以拯救其他人的悲痛。

【讨论】:

这正是我遇到的问题。谢谢你救了我没有尽头的痛苦! 很奇怪,它曾经工作,然后停止工作,但谢谢你我这样做了,它救了我【参考方案3】:

在远程调试模式下启动 tomcat 期间,您还可以配置两种不同的方式在 jvm 中启用 JPDA。

在 windows 中,有几种方法可以在 jvm 中启用 JPDA。 1.一种方法是:

打开startup.bat。

添加下面的行

set JPDA_ADDRESS=8001
set JPDA_TRANSPORT=dt_socket
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

2.第二种方式是: 在 CATALINA_HOME/bin 目录下创建一个 setenv.bat 文件。 并添加以下行:

set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n

当然,它们是其他方式。 我和你有同样的问题,但后来发现我这两种方式都配置了,会导致打开JPDA端口失败,没有任何错误细节。 然后我只选择了方法1,端口打开成功。 希望这可以帮助其他新手。

【讨论】:

以上是关于在远程调试模式下启动tomcat时出错的主要内容,如果未能解决你的问题,请参考以下文章

tomcat调试模式出问题的解决方法

启动远程程序时出错:无法获取进程 699 的任务

调试模式超时Tomcat [关闭]

windows调试本地启动的tomcat

如何在调试模式下启动本机应用程序而不在开发人员菜单中远程选择调试 js

Linux下Tomcat进行远程调试