将多个Immutant WAR文件部署到Wildfly

时间:2015-09-24 16:30:14

标签: clojure wildfly immutant

我不认为这是针对特定版本的,但我会在Immutant 2.1.0Wildfly 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错过了一步或丢失了野生动物配置或者是什么。

2 个答案:

答案 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

的信息