在Intellij IDEA中调试JBoss应用程序

4

我正在使用Intellij IDEA和JBoss服务器

当我运行它时,它正常工作,但当我调试它时,它会给出以下错误:

ERROR: transport error 202: connect failed: Connection refused
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]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
Disconnected from server

问题在哪里?
4个回答

1
确保 JBoss VM 运行使用 Idea 在 Debug 对话框中显示的参数 - 特别是端口号对我来说似乎不正确。

2
我取消了传递变量的选项,然后就可以工作了,我不知道问题出在哪里。谢谢。 - Elbek

1
如果你正在运行OS X Mountain Lion,你可以尝试在VM选项中添加-d64,这对我而言起作用了。不传递变量可能只会防止你调试。
欲获得更多信息,请查看此处

0

取消选中传递变量对我没有起作用。最终我运行了独立的jBOSS,并在intelliJ中使用“远程jBOSS”配置。

为了使调试工作正常,我最终在“standalone.sh”中添加了以下几行:

DEBUG_JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:62307,suspend=n,server=y "
JAVA_OPTS="${DEBUG_JAVA_OPTS} $JAVA_OPTS"

DEBUG_JAVA_OPTS的值必须从IntelliJ对话框中复制并粘贴。这些行必须插入到脚本设置“JAVA_OPTS”之后的位置。

更新:

看起来IDE为每个项目生成一个新的端口号。因此,每次切换项目时都必须编辑standalone.sh文件。希望有人能提出解决方法。


0

另一个选择可能是在standalone.conf中注释掉'if'语句,如下所示。 请注意,第一个$JAVA_OPTS被添加(它是从IntelliJ传递的)。这样就不需要记住为每个项目更改端口号。

#Specify options to pass to the Java VM.
#
#if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="$JAVA_OPTS -Xms64m -Xmx512m -XX:MaxPermSize=256m -    Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone.xml"
#else
#echo "JAVA_OPTS already set in environment; overriding default settings with val ues: $JAVA_OPTS"
#fi

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