我不认为这是针对特定版本的,但我会在Immutant 2.1.0
和Wildfly 9.0.1.Final
上指定我。
我从一个股票开始,新解压缩的wildfly下载并使用$ wildfly-9.0.1.Final/bin/standalone.sh
运行它。我在我的clojure项目中运行$ lein immutant war
,我的project.clj
:
:immutant {:war {:destination "/srv/wildfly-9.0.1.Final/standalone/deployments/"
:context-path "/app1}}
这很好用,我的应用程序位于http://localhost:8080/app1
。问题是当我使用:context-path "/app2"
的第二个应用程序执行此操作时,wildfly抱怨:
>Caused by: org.jboss.msc.service.DuplicateServiceException:
Service jboss.pojo.\"org.jboss.netty.internal.LoggerConfigurator\".DESCRIBED
is already registered"
如果我在app1之前使用app2执行此过程,则app2会正确部署,但app1会收到投诉。两者都可以单独部署,但不能同时部署。
我不知道我是否在WAR
错过了一步或丢失了野生动物配置或者是什么。
答案 0 :(得分:2)
这是由具有jboss-beans.xml
文件的netty jar引起的,该文件由WildFly中的“pojo”子系统检测,并用于设置LoggerConfigurator bean。每个应用程序必须依赖netty(可能是传递性的),这会导致WildFly尝试两次部署同一个bean。一种解决方法是通过编辑相应的standalone/configuration/standalone*.xml
文件并注释掉pojo子系统来禁用WildFly中的pojo子系统(您可能需要注释掉<extension module="org.jboss.as.pojo"/>
和<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
)。
答案 1 :(得分:0)
当我尝试使用hornetq-jms-server在jboss上部署两个应用程序时,我遇到了类似的问题。根本原因是netty jar中有一个额外的jboss-beans.xml。我不确定它在哪个版本中删除了,但是切换到大黄蜂2.4.7.Final,使用netty-all 4.0.13.Final完成了这项工作。 以下是有关缺陷https://github.com/netty/netty/issues/1996
的信息