簡體   English   中英

嘗試在webapp中使用log4j時,出現帶有Log4j,公共記錄和tomcat 7的NoClassDefFoundError

[英]get NoClassDefFoundError with log4j, commons logging and tomcat 7 when trying to use log4j in webapp

我正在使用幾個webapp進行Java / J2EE項目。 我想在一些Web應用程序中介紹log4j。 所以我在WEB-INF \\ lib中添加了log4j-1.2.16.jar,在WEB-INF \\ classes中添加了log4j.properties

結果,我得到一個NoClassDefFoundError

org.apache.commons.logging.LogConfigurationException:org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@f8f541 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@f8f541 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category))
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)

當我嘗試直接在Tomcat中安裝log4j時出現相同的錯誤。 (我已經在tomcat / lib等中添加了適當的jars,就像這里所說的: http : //tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j

我發現由於第3方中包含commons.logging jar,該錯誤可能來自類加載器問題。 確實,當我在第3方中刪除此jar時,NoClassDefFoundError消失了。 ([第3方] /Bin/commons-logging-1.0.4.jar)。

但我絕不能從第3方上取下這個罐子,它是在其他地方使用的。

是否可以將公共日志配置為在加載時忽略log4j,還是有另一種方法來克服此類加載器問題?

我嘗試使用log4j-1.2.16.jar,並且第3方包含commons-logging-1.0.4.jar。 我的log4j.properties文件是apache在上一個鏈接中建議的默認文件。

您需要重新閱讀引用的文檔。

引用http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j

注意:當您要將Tomcat重新配置為使用Apache log4j進行自己的日志記錄時,需要執行本節中描述的步驟。 如果只想在自己的Web應用程序中使用log4j,則不需要這些步驟。 —在這種情況下,只需將log4j.jar和log4j.properties放入Web應用程序的WEB-INF / lib和WEB-INF /類中。

在您的proguard中添加以下定義。 這肯定會解決

-keep class com.amazonaws.org.apache.commons.logging.** { *; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM