2012-10-10 12 views
7

Ich habe eine Java-Webanwendung. Ich habe dieses neues Projekt einrichten und erhalte die folgende Ausnahme, wenn ich eine jsp laufen,Servlet.service() löst ClassCastException

Oct 10, 2012 3:01:49 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor 
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:151) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:619) 
Oct 10, 2012 3:01:57 AM org.apache.catalina.loader.WebappClassLoader modified 
INFO:  Additional JARs have been added : 'activation-1.1.jar' 
Oct 10, 2012 3:01:57 AM org.apache.catalina.core.StandardContext reload 
INFO: Reloading this Context has started 
Oct 10, 2012 3:01:57 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: The web application [/AutoUpgrade] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
Oct 10, 2012 3:01:57 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 
SEVERE: The web application [/AutoUpgrade] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak. 

Ich habe versucht, sauber und den Bau das oft Projekt, immer den neuesten Service-api.jar, meine lib ist sehr umfangreich und ich kann nicht herausfinden, ob es Inkonsistenzen zwischen jedem jar gibt, das diesen Fehler verursacht. Ich führe das Projekt auf Apache Tomcat 6 auf jdk 1.6 (mein Projekt muss auf 1.6 laufen). Ich habe versucht, diese Ausnahme zu googeln, bekam aber keinen Beitrag zu meinem Problem. Die relevanten Fragen zu Stackoverflow sprechen über NullPointerException.

Ich denke, das Problem muss mit meiner Bibliothek sein, aber ich kann nicht auf die Ursache hinweisen.

Dank

+0

Ist das Problem mit einer bestimmten JSP oder mit allen JSPs? Wie können Sie Abhängigkeiten verwalten - Maven/Efeu/Gradle oder einfach nur Gläser von Hand kopieren? Sie können sich Ihre Abhängigkeitenliste ansehen, um zu sehen, ob eine Tomcat-Bibliothek als Projektabhängigkeit enthalten ist - das wird wahrscheinlich das Problem sein. – jmruc

+0

Das Problem ist mit allen Jsps. Ich habe alle JAR-Dateien von Hand in den lib-Ordner meiner Projekte kopiert. Überprüfen Sie die Abhängigkeiten in meiner Tomcat-Bibliothek und lassen Sie es wissen – Rishabh

Antwort

8

Dies kann passieren, wenn Sie Tomcat spezifische JAR-Dateien in Ihrem Webapp die haben /WEB-INF/lib . Das ist nicht richtig. Sie sollten entfernen alle JAR-Dateien Servletcontainer-spezifische von dort. Sie gehören gar nicht dorthin. Sie sollen bereits vom Servletcontainer selbst zur Verfügung gestellt werden. Die /WEB-INF/lib sollte nur für die Webanwendung spezifische Bibliotheken enthalten, die nicht vom Servletcontainer bereitgestellt werden.

Wenn Sie sie dort als Ergebnis eines unthoughtful Versuch gesetzt haben Kompilierung Fehler zu beheben, dann diese Antwort sorgfältig lesen Sie, wie es der richtige Weg zu lösen: How do I import the javax.servlet API in my Eclipse project?

+0

Sorry für die späte Antwort sein. Ich war in anderen Projekten gefangen. Ihre Antwort ist durchaus sinnvoll und ich erinnere mich daran, in meiner WEB-INF/lib Servletcontainer-spezifische JAR zu verwenden. Wird solche widersprüchlichen JARs entfernen und Sie wissen lassen, wie die Dinge funktionieren! Danke, – Rishabh

+0

Dank BalusC, die Gläser in/lib Reinigung löste das Problem! – Rishabh

+0

Gern geschehen. – BalusC

0

Wenn Ihr Projekt Reinigung nicht helfen, vielleicht müssen Sie klar Cache.

Die Netbeans Cache irgendwo befindet ...
C: \ Dokumente und Einstellungen \ myself.netbeans \ 7.0 \ var \ Cache

+0

Reinigen Sie den Cache in Eclipse dosent das Problem zu lösen. Ich denke, Problem muss wegen der fehlenden/inkonsistenten Gläser – Rishabh

0

Entfernen Sie die folgenden von lib.

  1. prüfen gleiche Glas mit unterschiedlichen Versionen
  2. Alle catalina verwandte Gläser
  3. el-api.jar
  4. jsp-api.jar

Dies wird auf jeden Fall funktionieren.