- Servlet.service() throws classcastexception-Fehler
Ich habe ein java-web-Anwendung. Ich habe dieses neue Projekt und immer folgende exception, wenn ich eine jsp,
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, reinigen Sie und bauen das Projekt viele Male, immer die neuesten service-api.jar meine lib ist sehr umfangreich und ich kann nicht herausfinden, ob es irgendwelche Widersprüche zwischen jedem Glas, der diesen Fehler verursacht. Ich bin mit dem Projekt auf Apache Tomcat 6 auf jdk 1.6 (mein Projekt ausführen muss, um auf 1.6). Ich habe versucht, googeln diese Ausnahme, aber nicht jeder Beitrag relevant für mein problem. Die relevanten Fragen auf stackoverflow reden NullPointerException.
Denke ich muss das problem mit meiner Bibliothek, aber ich kann keine Ursache.
Dank
- Ist das problem mit einer bestimmten JSP, oder mit allen JSPs? Wie kann man manige Abhängigkeiten maven/ivy/gradle oder einfach nur kopieren Gläser von hand? Sie könnten Blick auf Ihre Liste "Abhängigkeiten", um zu sehen, ob tomcat-Bibliothek enthalten ist als Projekt-Abhängigkeit - das wird wahrscheinlich das problem zu sein.
- Das problem ist mit allen jsps. Ich habe kopiert, alle jar-Dateien von hand in meine Projekte lib-Ordner. Überprüfen Sie die Abhängigkeiten in meinem tomcat-Bibliothek und Sie wissen lassen,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann passieren, wenn Sie Tomcat-spezifische JAR-Dateien in Ihre webapp ist
/WEB-INF/lib
. Das ist nicht richtig. Sollten Sie entfernen alle servletcontainer-spezifische JAR-Dateien von dort. Sie gehören nicht da. Sie sollen bereits zur Verfügung gestellt von der servletcontainer selbst. Die/WEB-INF/lib
sollte nur enthalten Bibliotheken, die spezifisch auf die webapp an sich die nicht von der servletcontainer.Wenn Sie es als Ergebnis einer unthoughtful Versuch zu beheben Kompilierungsfehler, dann Lesen Sie bitte sorgfältig diese Antwort, wie es zu lösen, der richtige Weg: Wie kann ich importieren Sie die javax.servlet-API in mein Eclipse-Projekt?
Wenn die Reinigung Ihr Projekt nicht helfen, vielleicht müssen Sie leeren Sie Ihren cache.
Den Netbeans cache befindet sich irgendwo...
C:\Documents und Einstellungen\ich.netbeans\7.0\var\cache
Entfernen Sie die folgenden von lib.
Dieser wird auf jeden Fall funktionieren.