本机方法中的致命错误:JDWP没有传输初始化,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)

时间:2012-02-03 14:28:35

标签: eclipse tomcat windows-7 java

你能解释一下这个错误是什么(其次是为什么我会得到它)?

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

P.S。它可能与Known Tomcat 6.0 and JDK 1.7.0_02 issues?有关,因为我从JDK 1.7.0升级到1.7.0更新2后才开始获取它,而没有其他软件的其他升级。

我正在跑步:

  • Eclipse Indigo 3.7
  • JDK 1.7.0_0u2(JDK 7 update 2)
  • Tomcat 6.0
  • Windows 7
  • Apache HTTP Server(虽然尚未使用)

当我启动Tomcat时,我开始收到此错误,但不是所有时间。刚刚重新启动修复它。有些早晨,我没有重新启动就来上班,即使它在前一天失败了也修复了它。这是零星的。要调试这个我需要了解。你能解释一下吗?

编辑:我在同一个端口上有两个Tomcat服务器,用于两个不同的项目。另一个(第一个)服务器“停止”但仍保持“同步”,以防万一。我很快就尝试将所有端口更改为一个(8080到8081)并且错误再现。但是,这可能不是对更改端口的正确测试。

编辑2:我刚遇到此问题,并重新启动“修复”此问题。整个工作站都在周末工作,Tomcat周五工作,Eclipse在一天结束时关闭。我会继续做这样的笔记,因为我遇到了它以消除猜测。

编辑3:今天它从昨天工作的未启动系统中给了我这个错误,程序昨天关闭并且今天重新启动。我重新启动,错误消失了。最值得注意的是,错误始终发生在23%的编译中。它达到23%,稍等一下,这是我知道它不会成功的时候,然后弹出一个窗口。我将捕捉下次窗口的内容。然后它将上述错误提供给控制台。

编辑4:我正在运行Windows 7和Apache HTTP Server(虽然尚未使用它)。我将这些添加到上面的列表中。

编辑5:编辑#3中提到的弹出窗口是(并注意我的Tomcat名为Server Tomcat v6.0 Server at localhost):

Problem Occurred

'Server Tomcat v6.0 Server at localhost' has encountered a problem.

Server Tomcat v6.0 Server at localhost  failed to start.

OK << Details

Server Tomcat v6.0 Server at localhost  failed to start.

编辑6:我刚刚遇到一个新问题,即Cannot connect to VM com.sun.jdi.connect.TransportTimeoutException弹出窗口错误以及此问题在控制台窗口中询问的相同主要错误。

编辑7:只需重新启动Eclipse,而不是重新启动整台计算机,今天早上就解决了错误。

15 个答案:

答案 0 :(得分:26)

当其他程序占用必要的端口时,通常会出现此错误。

您说您已将HTTP连接器端口从8080更改为8081,因此两个Tomcats不会发生冲突,但是您是否还更改了<Server port="..."中的tomcat/conf/server.xml以使您的Tomcats之间有所不同?< / p>

是否有其他连接器端口可能会发生冲突?

答案 1 :(得分:20)

您的HOSTS文件是否有localhost的条目?看到这个错误的其他一些情况似乎将此作为一个问题解决方案。

确保您已设置127.0.0.1 localhost ...

(来自thisthis

答案 2 :(得分:18)

遇到这个。我所做的只是杀死所有的java进程(任务管理器)并再次运行。它奏效了!

答案 3 :(得分:9)

检查您的配置字符串是否正常:

Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999

我今天刚遇到这个问题,在我的情况下,这是因为jpda配置参数中有一个不可见的字符。

确切地说,我在tomcat上的setenv.sh文件中有dos行结尾,导致'dt_socket'后面出现回车字符

答案 4 :(得分:4)

编辑此行并将其工作。

::1             localhost.localdomain localhost
127.0.0.1       localhost

答案 5 :(得分:3)

我遇到了同样的问题,因为我在tomcat的Catalina.sh中设置了以下内容:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999" 

删除后,我的tomcat运行良好。

希望能帮到你。

答案 6 :(得分:2)

遇到此问题并更改调试端口有帮助。出于某种原因,调试端口必须大于应用程序端口。

答案 7 :(得分:1)

这个错误主要发生在我们强行杀死weblogic服务器时(&#34; kill -9进程id&#34;),所以在重新启动之前请检查所有的端口状态weblogic使用例如http端口,DEBUG_PORT等,使用此命令查看该端口是否处于活动状态。

netstat -an | grep的 (管理员:7001或其他东西,托管服务器 - 7002,7003等) 例如:netstat -an | grep 7001

如果它返回值,那么, 选项1:等待一段时间,以便后台进程可以释放端口 选项2:执行stopweblogic.sh 选项3:退回服务器/主机或重新启动系统。

我的问题已由选项2解决。

答案 8 :(得分:1)

如果您的JVM Cli为:-agentlib:jdwp=transport=dt_socket,address=60000,server=n,suspend=n且JDK版本为7,则将“server = n”更改为“server = y”即可。

答案 9 :(得分:0)

代理的控制面板Java选项更改为“直接”,将Windows Internet选项更改为不使用代理并重新启动。它对我有用。

答案 10 :(得分:0)

在我的项目中我遇到了同样的错误,我重新启动了Tomcat并且它工作正常,但没有杀死java进程。

答案 11 :(得分:0)

我设置了127.0.0.1 localhost,并解决了这个问题。

答案 12 :(得分:0)

我在tomcat的Catalina.sh中遇到了与JPDA选项相同的问题:

JPDA_OPTS = “ - agentlib:JDWP =运输= $ JPDA_TRANSPORT,地址= $ JPDA_ADDRESS,服务器= Y,暂停= $ JPDA_SUSPEND”

从我的命令中删除JPDA选项以启动Tomcat服务器后,我能够在本地环境中启动服务器。

答案 13 :(得分:0)

当我切换到STS版本3.8.3时,我遇到了同样的错误 并将我的整个工作区导入新的STS。

显然是#34; Boot Spring App&#34;实例有缺陷。 (我从STS开始)

如果这是你的问题, 只需再次创建Boot run配置即可。

答案 14 :(得分:0)

如果您正在使用环境或docker映像,则可以真正更改/ etc / host,我建议将绑定从star更改为0.0.0.0。

因此(以我的情况为例),而不是:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"

您将其定义为:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005"