【问题标题】:How to start Jboss server, in domain mode, using intellij debugger如何使用 intellij 调试器在域模式下启动 Jboss 服务器
【发布时间】:2019-01-31 12:54:14
【问题描述】:

Intellij 不会使用调试器在域模式下启动 jboss 服务器。我可以开始这是一个正常的过程,但不能使用调试器。我可以使用调试器以独立模式启动它。当我使用 intellij 调试器以域模式启动时,出现以下错误

[主机控制器] 本机方法中的致命错误:JDWP 未初始化传输,jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) [主机控制器] 错误:传输错误 202:连接失败:连接被拒绝 [主机控制器] 错误:JDWP 传输 dt_socket 初始化失败,TRANSPORT_INIT(510) [主机控制器] JDWP 退出错误 AGENT_ERROR_TRANSPORT_INIT(197):没有传输初始化 [debugInit.c:750]

我可以在命令行上启动 jboss 服务器并从 intellij 附加一个远程调试器,但如果可能的话,我宁愿通过 intellij 做所有事情。所以我宁愿从intellij部署和调试

通过查看错误,我认为问题是因为在域模式下,主机控制器首先启动,但调试字符串适用于服务器实例,该服务器实例直到稍后才启动。 Intellij 然后尝试附加调试器,但服务器没有运行,所以它不能附加到任何东西然后失败。反正有这个吗?

【问题讨论】:

    标签: intellij-idea jboss


    【解决方案1】:

    在 cmets 之后编辑。

    如果您需要在部署之前启动工具,您可以在配置的“部署”选项卡中执行此操作。

    单击“启动前”部分中的 + 图标:

    选择外部工具并使用 + 添加新命令

    定义你的程序开始

    您应该在部署选项卡中看到您的外部工具,并且应该在开始调试之前执行命令。

    【讨论】:

    • 因此,当您说检查 JBoss 中的调试服务时,为了确保我理解正确,我一直在将调试字符串添加到 host.xml 中的服务器组 jvm args 中,即<jvm name="default"> <jvm-options> <option value="-agentlib:jdwp=transport=dt_socket,address=58144,server=y,suspend=n"/> </jvm-options> </jvm>。鉴于此您概述的第一种方法不起作用这是我一直在做的。第二种方法不起作用,因为 intellij 在端口上侦听,并且当 jboss 进程尝试启动时它会失败,因为该端口已在使用中。谢谢。
    • @user2663635 抱歉,它没有帮助。虽然这是一个常见问题,应用服务器应该启动调试服务或 IntelliJ,但是当两者都启动时它会崩溃。你也应该试试这个stackoverflow.com/questions/7487526/…
    • 谢谢,看到了,也试过了——本地 ip 和 localhost 都可以正常解析。你从intellij成功调试域模式jboss了吗?只是想知道是否可能
    • 域模式?不。独立:是的。
    • 是的,它在独立模式下也适用于我。认为这在域模式下可能是不可能的,因为 intellij 启动的第一个进程不是正在调试的进程,因此当 intellij 尝试附加时调试端口尚未准备好。如果我能以某种方式告诉 intelij 在尝试端口之前等待,我认为它会起作用,但我不知道该怎么做。我也可以在域模式下手动启动从 intellij 到 jboss 的远程调试,但如果可能的话,我想从 intellij 做所有事情 - 开始认为这是不可能的。感谢您的帮助
    【解决方案2】:

    我设法使用以下 intellij+wildfly/jboss 设置在域模式下使用 intellij wildfly/jboss 调试。

    在 wildfly/jboss domain.xml 中,在所选服务器上添加带有调试配置的 <jvm> 端口:

    <server-group name="YOUR_SERVER_GROUP" profile="YOUR_PROFILE">
        <jvm name="Debug">
            <!-- Debug mode: -->
            <jvm-options>
                <option value="-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:8777,suspend=n,server=n"/>
            </jvm-options>
            <!-- ...your other options -->
        </jvm>
        <!-- ... your already existing configurations -->
    </server-group>
    

    在 intellij 运行配置下,Startup/Connection&gt;Debug:

    • 添加与 wildfly/jboss 相同的端口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 2013-11-22
      • 2014-08-28
      相关资源
      最近更新 更多