我在java网络应用程序中使用Log4j。
现在,当我运行该Web应用程序的servlet时,这是我收到的错误消息 -
description服务器遇到内部错误(),导致无法完成此请求。
例外
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/apache/log4j/Logger
com.test.ConfigHelper.<clinit>(ConfigHelper.java:45)
com.test.runsinglecrawljob.doGet(runsinglecrawljob.java:126)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.ClassNotFoundException: org.apache.log4j.Logger
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
com.test.ConfigHelper.<clinit>(ConfigHelper.java:45)
com.test.runsinglecrawljob.doGet(runsinglecrawljob.java:126)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
现在ConfigHelper.java(第45行)中的代码行在下面给出---
protected static final Logger log = Logger.getLogger(ConfigHelper.class);
我检查了Java Build Path--已经将log4j的JAR文件添加到构建路径中。
我在这里做错了什么?如何让log4j正常工作?
答案 0 :(得分:11)
我检查了Java Build Path--已经将log4j的JAR文件添加到构建路径中。
成为 build 路径的一部分是不够的 - 您需要确保它在执行时可用,例如通过放置它在Web应用程序的WEB-INF/lib
目录中,或者可能在servlet容器的库路径中。