我在使用Wildfly 10.1.0 Final
部署war应用程序时遇到问题。
我的问题是:
Caused by: org.jboss.msc.service.DuplicateServiceException: Service
jboss.pojo."org.jboss.netty.internal.LoggerConfigurator".DESCRIBED
is already registered
我明白 - 为什么会发生并知道如何解决,但我不知道什么是最佳解决方案。
我部署了两个具有依赖关系org.apache.curator:curator-framework:2.9.0
的战争,它传递的是io.netty:netty:3.7.0.Final
。而且我可以看到版本3.9.0和早期的所有netty库都有jboss-beans.xml
- 这就是我的问题。应该注意的是,第一次战争部署总是成功的 - 当我部署第二次战争时抛出异常。
我找到了解决这个问题的方法:
我可以在我的项目中添加版本3.9.0.Final或更高版本的netty并解决我的问题 - 因为gradle将使用更高版本。但我不会在我的项目中使用netty - 并且不想拥有存根依赖。 但它确实有效。
我可以像在此处一样删除wildfly中的pojo子系统:Remove pojo subsystem from wildfly - 它可以在我的测试服务器上运行,但如果我没有任何权限 - 我就不能做到这一点。对于生产者来说 - 我没有任何权利去攻击' wildfly。此解决方案也适用。
我可以在Wildfly中使用新的netty库部署jar,之后我可以在jboss-deployment-structure.xml
中添加依赖项,在我的战争之前我应该排除旧的netty库。 我不会这样检查。
我可以在pojo
中排除jboss-deployment-structure.xml
个子系统,但我不会知道如何 - 我尝试过像:
它以The service container has been destabllilized by previous operation and further runtime updates cann't be processed.
答案 0 :(得分:0)
我认为,如果您无法删除pojo子系统 - 最好的方法是首先解决方案 - 因为在所有情况下我们都会在war文件中包含netty。
希望,我的部署痛苦会帮助某人