我的问题:Hibernate-5.0.12-Final 使用Jboss-Logging-3.3.1.Final
但 wildfly8 供应jboss-logging-3.1.4.GA
。使用3.1.4.GA
withHibernate5
会导致NoSuchMethodException
.
我正在将war
包含Hibernate-5.0.12-Final
AND Jboss-Logging-3.3.1.Final
部署到 wildfly8 AS 中。
我尝试了以下方法:
通过
add-logging-api-dependencies
在standalone.xml
<add-logging-api-dependencies value="false"/> <use-deployment-logging-config value="false"/>
不包括日志子系统或只是我放置在部署到 Wildfly AS 中的 .war 文件中的依赖项
org.jboss.logging
。jboss-deployment-structure.xml
WEB-INF
<jboss-deployment-structure> <deployment> <exclusions> <module name="org.jboss.logging" /> </exclusions> </deployment> </jboss-deployment-structure>
或者
<jboss-deployment-structure> <deployment> <exclude-subsystems> <subsystem name="logging" /> </exclude-subsystems> </deployment> </jboss-deployment-structure>
两者都没有工作。它起作用了,因为我的应用程序没有更多的日志记录,但是Jboss-Logging-3.3.1.Final
没有使用提供的。
所以我最终更新了jar
wildfly-modules文件夹(modules/system/layers/base/org/jboss/logging/
)中的jboss-logging。这行得通,但我认为必须有一个更好的解决方案,因为交换/替换jar
可能会破坏在某个版本(3.1.4.GA)中需要 jboss-logging 的其他模块的依赖关系。
TLDR;我只是想告诉我的wildfly8它应该使用jboss-logging jar(由我提供,在war文件中)而不是wildfly AS提供的jboss-logging.jar。