繁体   English   中英

Tomcat java.lang.NoClassDefFoundError:无法初始化类

[英]Tomcat java.lang.NoClassDefFoundError: Could not initialize class

完整错误: java.lang.NoClassDefFoundError: Could not initialize class lt.maze.dao.DAO

我的LoginServlet使用了DAO类。 它已编译并部署,我检查了WEB-INF/classes DAO.class存在。

为什么不加载? 我想手动将它们添加到我的类路径中吗? (我有清单文件可以加载我的属性文件)。

LoginServlet.java

@WebServlet(name = "LoginServlet", urlPatterns = { "/login" })
public class LoginServlet extends HttpServlet {

@Override
public void init() throws ServletException
{
    System.out.println("System. out. Its online.");
    getServletContext().log("LoginServlet initialised");
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    getServletContext().log("Http request. Request URI: " + request.getRequestURI());
    System.out.println("Http request. Request URI: " + request.getRequestURI());
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    if(username == null || password == null) {
        response.sendError(401);
    } else {
        UserDAO userDAO = DAO.getUserDAO();
        User user = userDAO.find(username, password);
        if(user == null) {
            response.sendError(401, "Invalid username or password");
        } else {
            String sessionToken = SessionTokens.getSessionToken();
            response.addCookie(new Cookie("session-token", sessionToken));
            getServletContext().log("Valid connection. token:"+sessionToken);
        }
    }

}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    getServletContext().log("Request received via GET.");
    System.out.println("Requeswt received via GET");
}

}

完整的堆栈跟踪:

18-May-2015 14:49:35.133 SEVERE [http-nio-8080-exec-1]       org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [LoginServlet] in context with path [/ChatApp] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class lt.maze.dao.DAO
at lt.maze.LoginServlet.doPost(LoginServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

如果异常从类的构造函数或静态初始化器中传播出来,则您还会收到java.lang.NoClassDefFoundError: Could not initialize class ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM