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

迁移至JBoss EAP 7.4.6后,Jakarta EE的JSF应用启动失败

JBoss EAP 7.3迁移至7.4.6启动报错排查

问题背景

基于JSF的UI应用在JBoss EAP 7.3上运行正常,迁移至JBoss EAP 7.4.6版本后,已按官方说明更新standalone.xml配置,但启动应用时出现依赖缺失错误。

报错日志

13:19:47,946 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: (["deployment" => "web-2.20.1-jboss7.war"]) - failure description: {
   ** "WFLYCTL0412: Required services that are not installed:" => [
        "org.wildfly.remoting.outbound-connection.remote-ejb-connection",
        "jboss.deployment.unit.\"web-2.20.1-jboss7.war\".WeldStartService",
        "jboss.deployment.unit.\"web-2.20.1-jboss7.war\".beanmanager"
    ],**
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.deployment.unit.\"cweb-2.20.1-jboss7.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"web-2.20.1-jboss7.war\".beanmanager]",
        "jboss.deployment.unit.\"cweb-2.20.1-jboss7.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"web-2.20.1-jboss7.war\".beanmanager, jboss.deployment.unit.\"web-2.20.1-jboss7.war\".WeldStartService]",
        "jboss.ejb3.ejbClientContext.deployment.\"web-2.20.1-jboss7.war\".internal-remoting-profile is missing [org.wildfly.remoting.outbound-connection.remote-ejb-connection]"
    ]
13:19:48,185 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 41) WFLYSRV0010: Deployed "web-2.20.1-jboss7.war" (runtime-name : "web-2.20.1-jboss7.war")
13:19:48,194 INFO  [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0184:    New missing/unsatisfied dependencies:
      service jboss.deployment.unit."web-2.20.1-jboss7.war".WeldStartService (missing) dependents: [service jboss.deployment.unit."web-2.20.1-jboss7.war".weld.weldClassIntrospector] 
      service jboss.deployment.unit."web-2.20.1-jboss7.war".beanmanager (missing) dependents: [service jboss.deployment.unit."web-2.20.1-jboss7.war".batch.artifact.factory, service jboss.deployment.unit."web-2.20.1-jboss7.war".weld.weldClassIntrospector] 
      service org.wildfly.remoting.outbound-connection.remote-ejb-connection (missing) dependents: [service jboss.ejb3.ejbClientContext.deployment."web-2.20.1-jboss7.war".internal-remoting-profile] 
WFLYCTL0448: 5 additional services are down due to their dependencies being missing or failed

已尝试操作

已在standalone.xml中添加如下出站Socket绑定,但问题未解决:

<outbound-socket-binding name="remote-ejb">
    <remote-destination host="localhost" port="8380"/>
</outbound-socket-binding>

解决步骤

1. 补全Remote EJB出站连接配置

错误提示缺失的org.wildfly.remoting.outbound-connection.remote-ejb-connection服务,仅配置出站Socket绑定不足,需在standalone.xml的remoting子系统中添加对应的出站连接:

<subsystem xmlns="urn:jboss:domain:remoting:5.0">
    <!-- 保留原有配置 -->
    <outbound-connections>
        <!-- 若无需认证,可省略authentication-context属性 -->
        <outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" authentication-context="ejb-auth-context"/>
    </outbound-connections>
</subsystem>

注意:authentication-context需提前配置,若应用连接EJB服务无需认证,可直接去掉该属性。

2. 修复Weld/BeanManager依赖

WeldStartService和beanmanager缺失通常与CDI配置有关:

  • 启用CDI场景:检查应用WEB-INF/beans.xml是否存在,JBoss EAP 7.4对CDI启用规则更严格,即使空文件也需存在以触发CDI容器初始化。
  • 禁用CDI场景:若应用无需CDI,可在应用的WEB-INF/jboss-deployment-structure.xml中排除Weld子系统:
<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="weld"/>
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>

3. 验证配置与端口

  • 确认remote-ejb绑定的port与目标EJB服务的远程监听端口一致(默认EJB远程端口为8080或8380,需根据实际环境调整)。
  • 重启JBoss后,检查启动日志确认remoting和CDI子系统已正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:24:55