WildFly 8升级至12部署EAR报错jboss.remoting.management.channel.registry
WildFly 8 → 12 升级:EAR 部署失败(依赖
jboss.remoting.management.channel.registry 缺失) 问题场景
你已经完成WildFly 8到12的升级,确认standalone-full.xml配置无异常,服务器能正常启动,但部署wfa-0.5.ear时失败,核心报错如下:
2018-05-29 14:44:34,674 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ ("core-service" => "management"), ("management-interface" => "http-interface") ]) - failure description: { "WFLYCTL0412: Required services that are not installed:" => ["jboss.remoting.management.channel.registry"], "WFLYCTL0180: Services with missing/unavailable dependencies" => ["org.wildfly.management.http.extensible.shutdown is missing [jboss.remoting.management.channel.registry]"] } 2018-05-29 14:44:34,685 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "wfa-0.5.ear")]) - failure description: { "WFLYCTL0412: Required services that are not installed:" => [
该EAR包结构:
+- lib +- META-INF | +- application.xml | +- jboss-deployment-structure.xml | +- MANIFEST.MF +- cache-0.5.jar +- command-0.5.jar +- common-0.5.jar +- dar-0.5.jar +- finders-0.5.jar +- job-management-0.5.jar +- rest-facade-0.5.war +- server-facade-0.5.jar +- upgrade-portal-0.5.war +- upgraders-0.5.jar +- user-management-0.5.jar +- web-services-0.5.war +- z_asup-0.5.jar
问题分析
第一个报错指向管理接口的依赖缺失:jboss.remoting.management.channel.registry是WildFly管理通道的核心服务,这个服务缺失会导致管理接口初始化失败,进而影响后续的部署操作。大概率是以下两个原因:
- WildFly 12的
standalone-full.xml中remoting子系统配置和WildFly 8不兼容,缺少了管理通道相关的配置; - EAR包中的
jboss-deployment-structure.xml可能误排除了remoting或管理相关的模块,导致服务器无法加载必要服务。
解决步骤
1. 先排查服务器本身的配置问题
先移除wfa-0.5.ear的部署,启动服务器,观察是否还会出现management-interface的报错:
- 如果仍报错:说明是
standalone-full.xml的问题,需要对比WildFly 12默认的standalone-full.xml(位于$WILDFLY_HOME/standalone/configuration/下),重点检查:- 是否存在
<subsystem xmlns="urn:jboss:domain:remoting:4.0">节点(WildFly 12用的是remoting 4.0,WildFly 8是2.0,配置结构差异较大); - 该节点下是否配置了
<management-connector>,示例配置如下:<subsystem xmlns="urn:jboss:domain:remoting:4.0"> <endpoint worker="default"/> <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> <management-connector connector-ref="http-remoting-connector"/> </subsystem> - 确保
management核心服务的配置没有被误修改,比如http-interface是否正确关联了remoting连接器。
- 是否存在
2. 检查EAR的jboss-deployment-structure.xml
这个文件是控制WildFly模块依赖的关键,升级后很容易出现兼容性问题:
- 检查是否有
<exclude-subsystems>或<exclude-modules>节点排除了remoting或management相关模块,如果有这类配置,尝试移除或调整,确保管理相关的模块能被加载; - 检查是否需要显式引入remoting模块,比如在
<dependencies>中添加:<dependencies> <module name="org.jboss.remoting" slot="main"/> <module name="org.jboss.remoting-management" slot="main"/> </dependencies>
3. 验证WildFly模块完整性
有时候升级过程中可能丢失了核心模块,检查$WILDFLY_HOME/modules/system/layers/base/org/jboss/remoting和org/jboss/remoting-management目录下的文件是否完整,必要时可以从WildFly 12的安装包中重新拷贝这些模块。
4. 测试简化部署
如果上述步骤都无效,可以尝试部署一个简单的测试EAR,确认服务器部署功能正常,再逐步添加原EAR中的模块,定位到具体哪个子模块导致了依赖问题。
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

