我有一个名为Mo的班级。 Mo具有静态功能如下:
public static void logsomething(String s)
logomething的主体使用log4j(jar)。这不是问题。
我还有一个主要功能:
public static void main(String[] args) {
// TODO Auto-generated method stub
Mo.logsomething("sth");
}
我在main中调用了Mo.logsomething()。没关系。没错。
但我在Servlet doGet中称之为Mo.logsomething(“sth”):
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Mo.logsomething("sss");
response.getWriter().println("<h1>hello</h1>");
}
获取例外情况: java.lang.NoClassDefFoundError:org / apache / log4j / Layout
所以这很奇怪。我试着调试看看发生了什么。 当调试光标在行上时:Mo.logsomething(“sss”); 我按F5进入代码。 但我收到错误:找不到来源。
我怎么了?
答案 0 :(得分:1)
您没有编写您使用的应用程序服务器。但是您的错误可能是类路径错误。
问题是您的应用程序服务器找不到Log4J
库。
通常可以通过将Log4J
jar文件放入Web应用程序的WEB-INF/lib/
目录并再次部署该应用程序来解决此问题。