0

我正在使用 Weblogic 116、Ejb3.0、quartz-all 1.8.5。

当我从服务器的 lib 目录中删除 log4j jar 时,我遇到了石英问题。

我不能在那里(在 lib 下)有 log4j 的原因是因为我希望 Weblogic 中的每个部署都有自己的日志记录。所以每个部署都有自己的 log4j jar。

如果把它放回目录log4j.jarserver/lib那么石英工作正常,但我不能为我的部署提供单独的日志。

当我从 lib 中删除 log4j jar 时,这是我从石英得到的错误:

java.lang.NoClassDefFoundError: org/apache/log4j/Level
    在 org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:83)
    在 org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:53)
    在 org.slf4j.LoggerFactory.bind(LoggerFactory.java:122)
    在 org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:112)
    在 org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
    在 org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
    在 org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)

..
4

1 回答 1

0

几个选项。

1) 将 log4j.jar 部署为共享库或可选包。 http://download.oracle.com/docs/cd/E21764_01/web.1111/e13706/libraries.htm#i1064674 然后从您的应用程序中引用 log4j。如果您的应用程序是 EAR,那么您可以将其作为共享库从 weblogic-application.xml 中引用一个 library-ref 元素,并且当您的应用程序被部署时,log4j.jar 被添加到 EAR 的 APP-INF/lib . 如果您有 WAR,则可以通过修改 META-INF/manifest.mf 文件将其作为可选包引用: Extension-List: log4jjar log4jjar-Extension-Name: log4j

其中 log4j 是共享库/可选包的部署名称

2) 在您之前部署的应用程序中使用过滤类加载器。

于 2011-07-20T19:40:00.570 回答