clojure – 将多个Immutant WAR文件部署到Wildfly

我不认为这是版本特定的,但我会指定我在Immutant 2.1.0和Wildfly 9.0.1.Final.

我从一个股票,刚刚解压缩的wildfly下载开始,并使用$wildfly-9.0.1.Final/bin/standalone.sh运行它.我在我的clojure项目中使用以下项目在我的project.clj中运行$lein immutant war:

: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时间或缺少wildfly配置或者什么.

最佳答案 这是由具有jboss-beans.xml文件的netty jar引起的,该文件由WildFly中的“pojo”子系统检测,并用于设置LoggerConfigurator bean.每个应用程序必须依赖netty(可能是传递性的),这会导致WildFly尝试两次部署同一个bean.一种解决方法是通过编辑相应的独立/配置/独立* .xml文件并注释掉pojo子系统来禁用WildFly中的pojo子系统(您可能需要注释掉两个< extension module =“org.jboss.as.pojo “/>和< subsystem xmlns =”urn:jboss:domain:pojo:1.0“/>).

点赞