0

我有一个名为 Mo 的类。 Mo 有一个静态函数,如下所示:

public static void logsomething(String s) 

logsomething 的主体使用 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 进入代码。但我得到错误:找不到源。

我怎么了?

4

1 回答 1

1

您不是在编写您使用的应用程序服务器。但是您的错误很可能是类路径错误。

问题是您的应用程序服务器找不到该Log4J库。

通常可以通过将Log4Jjar 文件放入WEB-INF/lib/Web 应用程序的目录并再次部署该应用程序来解决此问题。

于 2013-01-30T07:06:05.387 回答