完整错误:java.lang.NoClassDefFoundError:无法初始化类 lt.maze.dao.DAO
DAO 类是在我的 LoginServlet
中使用的。它已编译并部署,我检查了WEB-INF/classes
。 DAO.class
存在。
为什么没有加载?我应该手动将它们添加到我的类路径中吗? (我有 list 文件来加载我的属性文件)。
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 notinitialize class ...
。
关于java - Tomcat java.lang.NoClassDefFoundError : Could not initialize class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302612/