You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBoss EAP 7.4部署含jolokia的EAR包启动报WFLYCTL0030错误如何解决

JBoss EAP 7.4 Jolokia 轮询 ActiveMQ RAR 报错解决方案

根因说明

JBoss EAP 7.x 相对 6.x 调整了跨部署单元的加载优先级逻辑,默认独立部署的 RAR 包加载顺序晚于 EAR 内的 Web 模块,所以内置在 something.ear 中的 Jolokia 会在 activemq-rar.rar 完成资源注册之前就启动 MBean 轮询,触发资源不存在的报错。

可选解决方案

  • 方案1:配置部署依赖强制控制启动顺序(最稳定,优先推荐)
    在 something.ear 的 META-INF/jboss-deployment-structure.xml 中添加以下配置,强制 Jolokia 等待 ActiveMQ RAR 部署完成后再加载:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <!-- 对整个EAR生效的依赖配置 -->
  <deployment>
    <dependencies>
      <module name="deployment.activemq-rar.rar" export="true" optional="false"/>
    </dependencies>
  </deployment>
  <!-- 也可以仅针对jolokia子部署配置,粒度更细 -->
  <sub-deployment name="jolokia-1.6.2.war">
    <dependencies>
      <module name="deployment.activemq-rar.rar" export="true" optional="false"/>
    </dependencies>
  </sub-deployment>
</jboss-deployment-structure>

该配置会通知 JBoss 容器,必须先完成 activemq-rar.rar 的全量部署、资源适配器注册流程,才会开始加载 something.ear 及内部的 Jolokia 模块。

  • 方案2:调整 Jolokia 启动延迟
    如果不想修改 JBoss 部署配置,可以修改 jolokia-1.6.2.war 内的 WEB-INF/web.xml,添加初始化参数延迟 Jolokia 的启动时间:
<servlet>
  <servlet-name>jolokia</servlet-name>
  <servlet-class>org.jolokia.http.AgentServlet</servlet-class>
  <init-param>
    <param-name>initDelaySeconds</param-name>
    <param-value>30</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

可根据实际部署的耗时调整参数值,确保 Jolokia 启动轮询时所有资源都已完成注册。

  • 方案3:屏蔽 Jolokia 对 ActiveMQ RAR 相关 MBean 的扫描
    如果无需监控 ActiveMQ RAR 的相关指标,可以配置 Jolokia 的 MBean 扫描排除规则,屏蔽 jboss.as:subsystem=resource-adapters,resource-adapter=activemq-rar.rar* 路径的 MBean 轮询,避免访问不存在的资源。

排查前置检查

注意报错日志中出现了 resource-adapter" => "activemq-rar.rarr"(多了一个r后缀),先检查 standalone.xml/domain.xml 中 resource-adapters 子系统的配置是否存在拼写错误,排除配置写错导致的资源找不到问题。

内容的提问来源于stack exchange,提问作者JMBA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:06:04