配置ecplise日志发现错误
java.lang.NoClassDefFoundError: org/apache/log4j/Layout
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:145)
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:282)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:220)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.ClassNotFoundException: org.apache.log4j.Layout
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:145)
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:282)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:220)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)有疑问 ,我把该日志代码放到java工程里是正常的。能够写入日志文件。
现在吧日志文件放到web工程里 ,结果发现上面错误(log4j。propertites在web/classes下面)
为社么在2种不同类型下会不同 (2者都是add log4j jar(jar在tomcat lib)到项目里)
为社么web工程下会找不到 java.lang.NoClassDefFoundError: org/apache/log4j/Layout
java.lang.Class.getDeclaredConstructors0(Native Method)发生错误的代码
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.FileAppender;
。。
static{System.out.println("load class1");};
static Logger logger = Logger.getLogger(DisplayAllAction.class);  -----就是这个地方
static{System.out.println("load sdfdfsfds class"); }

(申明 我在java工程上面代码验证通过,可以写入日志)

解决方案 »

  1.   

    尝试将log4j.jar放在工程的lib目录下。
      

  2.   

    “利用eclipse的import功能引入log4j.properties文件,并且进行修改”有人说
    我是直接复制该文件到web工程下请问一定要用import导入(具体如何做  是否工程找不到log4j.properties文件)
      

  3.   

    "尝试将log4j.jar放在工程的lib目录"
    还是不可以的 
      

  4.   

    可以拉 把jar放到lib下面就可以拉