Immer eine ungerade java.lang.NoClassDefFoundError exception
Ich bin immer eine seltsame exception beim ausführen der java-web-Projekt. Es scheint, wie diese 'zufällig' passiert, nachdem ich gerettet einige änderungen an einer meiner JSPs. Ich nicht erinnern, jemals ändern, um alle Einstellungen. Ich habe noch nie einen Fehler wie diese, bevor Sie aus diesem Projekt, es hatte kein problem die HubPortal
- Klasse vor.
Hier ist der volle stack-trace:
org.apache.jasper.JasperException: An exception occurred processing JSP page /hubmainpage.jsp at line 7
4: %>
5: <%
6: String responsepage = request.getParameter("show");
7: HubPortal hp = new HubPortal();
8: List processList = hp.getProcessList();
9: List clientList = hp.getClientList();
10: List transList = hp.getTransactionTypeList();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.hubmainpage_jsp._jspService(hubmainpage_jsp.java:783)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NoClassDefFoundError: org/apache/log4j/Logger
com.middleware.hts.HubPortal.<clinit>(HubPortal.java:23)
org.apache.jsp.hubmainpage_jsp._jspService(hubmainpage_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Irgendwelche Ideen, warum ich bin alle von einer plötzlichen auftreten dieses Fehlers?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies bedeutet, dass die log4j jar-Datei fehlt in der webapp runtime classpath befinden, während es ist verpflichtet, die von der
HubPortal
Klasse. Sie müssen, um es in der gleichen Stelle, wie die JAR-Datei mit denHubPortal
Klasse, zum Beispiel die/WEB-INF/lib
Ordner oder wo auch sonst immer dieHubPortal
Klasse ist.Zusätzlich zu jeder Antwort, die ich möchte sagen, einige
Tipps Für java.lang.NoClassDefFoundError oder java.lang.ClassNotFoundException:
%CONTEXT-ROOT%/WEB-INF/Classes(Servlet directory)
oderWenn die abhängigen Klassen availble, um Sie als JAR-dann ist es innen
%CONTEXT-ROOT%/WEB-INF/lib/xyz.jar
. Denken Sie daran, die container braucht, um auf diese Klassen zugreifen während der Laufzeit!Dies ist, weil Sie nicht die Bereitstellung der log4j-jar. Dies sollte Teil der Krieg, in
WEB-INF/lib
.Sieht aus wie Ihre HubPortal Klasse ist nicht in der Lage zu finden die Logger-Klasse machen, die als Teil Ihrer web-inf.