2

我的问题:Hibernate-5.0.12-Final 使用Jboss-Logging-3.3.1.Final但 wildfly8 供应jboss-logging-3.1.4.GA。使用3.1.4.GAwithHibernate5会导致NoSuchMethodException.

我正在将war包含Hibernate-5.0.12-Final AND Jboss-Logging-3.3.1.Final部署到 wildfly8 AS 中。

我尝试了以下方法:

  1. 通过add-logging-api-dependenciesstandalone.xml

     <add-logging-api-dependencies value="false"/>
     <use-deployment-logging-config value="false"/>
    
  2. 不包括日志子系统或只是我放置在部署到 Wildfly AS 中的 .war 文件中的依赖项org.jboss.loggingjboss-deployment-structure.xmlWEB-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没有使用提供的。

所以我最终更新了jarwildfly-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。

4

0 回答 0