2011-07-18 25 views
0

我使用的是Weblogic 116,Ejb3.0,quartz-all 1.8.5。石英 - 在應用程序級別log4j的問題

當我從服務器的lib目錄中刪除log4j jar時,我遇到了石英問題。

原因我不能在那裏有log4j(在lib下)這是因爲我希望Weblogic中的每個部署都有它自己的日誌記錄。所以每個部署都有自己的log4j jar。

粗糙,如果把log4j.jar放回server/lib dir然後石英工作正常,但我不能有我的部署單獨日誌。

當我刪除從LIB這log4j的罐子是我從石英得到的錯誤:

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

.. 

回答

0

有幾個選項。

1)將log4j.jar部署爲共享庫或可選包。 http://download.oracle.com/docs/cd/E21764_01/web.1111/e13706/libraries.htm#i1064674 然後從您的應用程序中引用log4j。如果你的應用程序是一個EAR,那麼你可以從weblogic-application.xml中引用它作爲一個共享庫和一個庫引用元素,並且當你的應用程序被部署時,log4j.jar被添加到EAR的APP-INF/lib中。 擴展名錄:log4jjar log4jjar-擴展名:log4j的

哪裏的log4j的名稱是如果你有一個WAR,那麼你可以通過修改META-INF/MANIFEST.MF文件中引用它作爲一個可選包部署共享庫/可選軟件包

2)在以前部署的應用程序中使用過濾類加載器。

+0

我已經通過在我的部署中將引用的jar添加到ear文件夾中解決了這個問題。 – rayman