没有针对org.apache.commons.logging.logfactory定义的实现



我们试图从jboss4.2.3迁移到wildfly,当我们试图将战争从jboss4.2.3到wildfly11时,我们得到以下例外:

Caused by: org.apache.commons.discovery.DiscoveryException: No implementation defined for org.apache.commons.logging.LogFactory
        at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java:404)
        at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java:579)
        at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:418)
        at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:378)
        at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
        at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
        ... 28 more

module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.ca.pamsc.httpclient">
   <resources>
      <resource-root path="commons-httpclient-3.1.jar" />
   </resources>
   <dependencies>
      <module name="org.apache.commons.logging" />
   </dependencies>
</module>

战争结构:

acem.war
└───WEB-INF
    │   faces-config.xml
    │   filebrowse.tld
    │   jboss-deployment-structure.xml
    │   jboss-web.xml
    │   jsftaglib.tld
    │   userbrowse.tld
    │   web.xml
    │
    └───lib
            acem.jar
            axis.jar
            commons-beanutils-1.7.0.jar
            commons-digester-1.6.jar
            commons-discovery-0.2.jar
            commons-el-1.0.jar
            commons-fileupload-1.2.jar
            commons-io-1.3.1.jar
            commons-lang-2.6.jar
            cpchart.jar
            jaxb-api.jar
            jaxb-impl.jar
            jaxb1-impl.jar
            jsr173_1.0_api.jar
            jstl.jar
            myfaces-api.jar
            myfaces-impl.jar
            namespace.jar
            openviz2.jar
            relaxngDatatype.jar
            standard.jar
            tomahawk-1.1.5.jar
            wcom.jar
            xsdlib.jar

更新1:我尝试将Apache Commons记录JAR文件手动添加到模块文件夹中,但是在这种情况下,它给出以下错误:

Caused by: org.apache.commons.discovery.DiscoveryException: Class org.apache.commons.logging.impl.LogFactoryImpl does not implement org.apache.commons.logging.LogFactory
        at org.apache.commons.discovery.tools.ClassUtils.verifyAncestory(ClassUtils.java:180)
        at org.apache.commons.discovery.tools.SPInterface.verifyAncestory(SPInterface.java:201)

module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.ca.pamsc.httpclient">
<resources>
   <resource-root path="commons-httpclient-3.1.jar"/>
   <resource-root path="commons-logging-1.0.4.jar"/>
</resources>
</module>

update2:通过参考以下线程创建了common-logging.properties文件,但仍会获取此错误

Caused by: org.apache.commons.discovery.DiscoveryException: Class org.apache.commons.logging.impl.LogFactoryImpl does not implement org.apache.commons.logging.LogFactory

Lotus注释6.5使用Axis API的Javaagent给出了"未针对org.apache.commons.logging.logfactory&quot"&quort&quort&quot'

的例外。

这是commons-logging-jboss-logmanager项目中的一个"错误",该项目已固定在1.0.3.final中。问题是有些项目似乎重新包装commons-logging并添加一个默认commons-logging:commons-logging JAR似乎没有的META-INF/services/org.apache.commons.logging.LogFactory文件。

应该安全下载org.jboss.logmanager:commons-logging-jboss-logmanager:1.0.3.Final并更换模块。您只需要将下载的库放在$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/commons/logging/main/中并编辑module.xml即可指向新版本。

相关内容

最新更新