【问题标题】:Wildfly 17: "User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable." using commons-configuration2Wildfly 17:“用户指定的日志类 'org.apache.commons.logging.impl.Log4JLogger' 找不到或不可用。”使用公共配置2
【发布时间】:2019-08-13 12:55:11
【问题描述】:

我在尝试加载我的应用程序配置时收到LogConfigurationException。它是一个 EAR Java 应用程序,本地部署在 Wildfly 17 应用服务器中。

我正在使用commons-configuration,因此我已将其作为依赖项部署在我的jboss-deployment-structure.xml 文件中:

<dependencies>
    ...
    <module name="org.apache.commons.commons-configuration2" slot="2.5" export="true" />

commons-configurations2module.xml 文件如下:

<module xmlns="urn:jboss:module:1.1" name="org.apache.commons.commons-configuration2" slot="2.5">
  <resources>
    <resource-root path="commons-configuration2-2.5.jar"/>
  </resources>
  <dependencies>
    <module name="org.apache.commons.commons-lang3" slot="3.9" />
    <module name="org.apache.commons.commons-text" slot="1.6" />
    <module name="commons-logging.commons-logging" slot="1.2" />
    <module name="javax.servlet.servlet-api" slot="2.4" />
  </dependencies> 
</module>

每个依赖项都有自己的模块,与它们的 pom 文件具有相同的依赖项。

服务器启动没有错误,但是当我尝试读取我的配置文件时,我得到了这个错误:

Caused by: org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.
    at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:804)
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
    at org.apache.commons.beanutils.PropertyUtilsBean.<init>(PropertyUtilsBean.java:123)
    at org.apache.commons.configuration2.beanutils.BeanHelper.initBeanUtilsBean(BeanHelper.java:625)
    at org.apache.commons.configuration2.beanutils.BeanHelper.<clinit>(BeanHelper.java:88)

commons-configuration2 的模块与commons-logging 1.2 版有依赖关系,其中包含似乎缺少的Log4JLoggerclass。

我相信这个模块和 Wildfly 自己的日志记录配置之间存在某种冲突。但是,我尝试在 jboss-deployment-structure.xmlcommons-configuration2 模块中添加/删除任何 commons-logging 依赖项,但我总是遇到同样的错误。

关于问题的任何线索,或者我可以尝试获得更多信息的任何线索?

谢谢和最好的问候。

【问题讨论】:

  • 您能提供您的module.xml 文件吗? WIldFly 使用自定义org.apache.commons.loggingimplementation
  • 我将 commons-configuration2 module.xml 添加到问题中。我是根据pom文件制作的。我试图从中评论公共日志记录部分,但这也没有用。

标签: java wildfly apache-commons-logging apache-commons-config


【解决方案1】:

最后,问题出在我项目中的依赖 jar 文件中的 logging.properties 文件。

我通过激活Commons Logging Diagnostics 设法找到了它。在那里我发现内部文件正在被读取并用于配置日志记录。从 JAR 中删除文件后,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2014-10-29
    • 2015-01-15
    • 2013-03-25
    • 2019-12-13
    相关资源
    最近更新 更多