【问题标题】:Weblogic11: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useableWeblogic11:用户指定的日志类 'org.apache.commons.logging.impl.Log4JLogger' 找不到或不可用
【发布时间】:2015-02-10 17:47:40
【问题描述】:

我知道这个错误已经出现在 stackoverflow 上,通常它会转化为类路径问题。就我而言,这是我的上下文:

应用服务器:Weblogic 10.3.6

使用 Spring 4 + log4j。

Weblogic 用户域库文件夹:

  • log4j-1.2.17.jar
  • commons-logging-1.1.3.jar
  • spring-beans-4.1.2.RELEASE.jar
  • spring-core-4.1.2.RELEASE.jar
  • spring-jdbc-4.1.2.RELEASE.jar
  • spring-tx-4.1.2.RELEASE.jar

当我尝试使用 StoredProcedure spring 类(在自定义 Weblogic Authenticator 的上下文中)时,出现此错误:

<10/Fev/2015 17H27m GMT> <Error> <org.apache.beehive.netui.pageflow.internal.AdapterManager> <BEA-00
0000> <ServletContainerAdapter manager not initialized correctly.>
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.j
ava:874)
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
        at org.springframework.jdbc.object.RdbmsOperation.<init>(RdbmsOperation.java:59)
        at org.springframework.jdbc.object.SqlCall.<init>(SqlCall.java:78)
        at org.springframework.jdbc.object.StoredProcedure.<init>(StoredProcedure.java:58)

我相信这与 log4j 或 commons-logging 的版本有关(或者最终是我缺少的 Spring 4 的依赖项。像 slf4j,虽然我认为这不是必需的)。

有人对此有任何想法吗?

提前致谢

最好的问候

若昂·西马斯

【问题讨论】:

  • 您是否尝试将两个 jar(log4j 和 commons-logging)复制到服务器并在服务器 start->classpath 中添加显式引用?只是为了确定这是否与缺少 jar 或冲突有关。
  • 已经试过了,还是一样的错误。将带有 log4j jar 的 commons-logging-1.1.3.jar 添加到 AdminServer 类路径。
  • 也许有两个公共日志,也许这会有所帮助:community.oracle.com/thread/2498003
  • 您使用的是&lt;prefer-application-packages&gt; 还是prefer-web-inf-classes?我认为您需要它,weblogic默认情况下已经在类路径中包含log4j,因此您的应用程序中的版本冲突docs.oracle.com/cd/E24329_01/web.1211/e24368/…
  • 问题是这不在 Web 应用程序上下文中。我没有 weblogic.xml 可以这样做。这发生在我实现的自定义身份验证器提供程序中。当它开始变得太复杂时,我添加了弹簧......然后日志记录问题开始......

标签: java logging weblogic11g spring-4


【解决方案1】:

感谢“显示名称缺失”提供的链接: [http://docs.oracle.com/cd/E24329_01/web.1211/e24368/classloading.htm#WLPRG282][1]

解决方案是创建一个专用的用户域并重新部署 jar。一切都按预期进行。

若昂·西马斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-25
    • 2016-10-12
    • 2021-04-14
    • 1970-01-01
    • 2023-03-20
    • 2022-10-13
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多