JDWP退出错误AGENT_ERROR_TRANSPORT_INIT(197):无传输初始化[../../../src/share/back/debugInit.c:690]。

21

我一直在尝试使用JRebel运行这个配置:

在这里输入图像描述

在这里输入图像描述

这是我的输出:

c:\JBOSS\jboss-portal-2.7.2\bin\run.bat -c default

c:\JBOSS\jboss-portal-2.7.2\bin>set JAVA_OPTS=-Dhttp.proxyHost=188.173.32.78 -Dhttp.proxyPort=3128 -DproxySet=true 
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: c:\JBOSS\jboss-portal-2.7.2

  JAVA: C:\Program Files\Java\jdk1.6.0_25\bin\java

  JAVA_OPTS: -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dhttp.proxyHost=188.173.32.78 -Dhttp.proxyPort=3128 -DproxySet=true -Dprogram.name=run.bat -server -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

  CLASSPATH: C:\Program Files\Java\jdk1.6.0_25\lib\tools.jar;c:\JBOSS\jboss-portal-2.7.2\bin\run.jar

===============================================================================

[2012-07-16 12:32:53,968] Artifact app-ear:ear: Artifact is being deployed, please wait...
[2012-07-16 12:32:53,972] Artifact my-portlet:war: Artifact is being deployed, please wait...
Connected to server
[2012-07-16 12:32:54,007] Artifact app-ear:ear: Artifact is deployed successfully
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
Disconnected from server

1
在使用 TcpView、netstat 或类似工具进行调试之前,请检查是否有任何程序正在使用端口 8787 - CrazyCoder
在使用JRebel之后,我遇到了相同的问题。 - deathangel908
7个回答

30

请注意您的帖子中以下的启动参数。

-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

必须有其他进程占用了8787端口。


如何在哪里更改端口号? - yashhy
我知道我来晚了,但是@yashhy可以在任何编辑器中打开standalone.bat(或.sh文件),然后你会找到一行set DEBUG_PORT=8787。你可以在那里编辑端口号。 - Kainix

2

错误:传输错误202:绑定失败:地址已在使用中
错误:JDWP传输dt_socket初始化失败,TRANSPORT_INIT(510) from "JAVA_OPTS: address=8787"

您设置了地址8787。

  1. Find the PID

    netstat -ap | grep 8787
    
  2. If you still see the PID with the above command, then there are child PIDs. To find the child PIDs

    pstree -p 
    

    and

    pstree -p  | grep previousPID
    
  3. Find the groupPID of the PID

    ps x -o "%r %p %y %x %c" 
    
  4. Kill the found PID

    kill -TERM -groupPID 
    

2

8787端口已经被占用。 如果8787端口被其他应用程序占用,您需要在文件run.bat中选择一个不同的端口号。 例如,18787


2

通常情况下,这种错误发生在端口已被使用的情况下。根据我的经验,当服务器启动不成功时,通常会发生这种情况,导致服务器仍在运行中。如果您使用的是Windows操作系统,可以打开任务管理器(Ctrl+Shift+Esc),然后查找“java.exe”进程。终止它并尝试重新启动您的服务器。


0

请检查您的调试端口

standalone.sh

这一定是

DEBUG_MODE=true
DEBUG_PORT="8787"

调试模式改为 false 或从调用此独立文件的新 sh 文件中传递一个新的调试端口 --debug 8788


0

这个问题通常发生在你的服务器所需的端口已经被其他应用程序占用时。由于我用于Jetty服务器的端口号8080已经被占用,因此它给了我这个错误,所以我只需将端口从8080更改为7070,然后它就可以正常工作了。


1
在我的情况下,端口80和8080上没有任何运行的内容,但仍然出现错误:# tailf /var/lib/tomcat7/instance1/logs/catalina.out JDWP退出错误AGENT_ERROR_TRANSPORT_INIT(197):未初始化传输[../../../src/share/back/debugInit.c:750] 本地方法中的致命错误:JDWP未初始化传输,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197) 错误:传输错误202:绑定失败:地址已在使用中 错误:JDWP传输dt_socket无法初始化,TRANSPORT_INIT(510) - Ashish Karpe
@AshishKarpe 请注意,端口80和8080不同。查看您系统中占用端口8080的进程。 - Lucky

0
在我的情况下,这个参数是错误的:address=server4.example.com:8787。我试图从另一台服务器上运行,例如server3.example.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接