繁体   English   中英

如何在域模式下使用 Intellij 调试器启动 Jboss 服务器

[英]How to start Jboss server, in domain mode, using intellij debugger

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+wildfly 设置在域模式下使用 intellij wildfly 调试。

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

<server-group name="serverGroupXYZ" profile="profileXYZ">
    <!-- jvm tag to add -->
    <jvm name="Debug">
        <jvm-options>
            <option value="-agentlib:jdwp=transport=dt_socket,address=8777,server=n,suspend=n"/>
        </jvm-options>
    </jvm>
    <!-- rest of your existing server-group content... -->

在 Intellij运行配置中,在Startup/Connection>Debug

  • 取消选中传递环境变量!
  • 添加与wildfly相同的端口

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM