2012-10-10 31 views
7

Tengo una aplicación web java. He creado este nuevo proyecto y obtener la siguiente excepción al ejecutar una JSP,Servlet.service() throws 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. 

He tratado limpia y la construcción de los proyectos muchas veces, conseguir el último Service-api.jar, mi lib es muy extensa y no puedo determinar si hay alguna incoherencia entre cualquier jar que esté causando este error. Estoy ejecutando el proyecto en Apache Tomcat 6 en jdk 1.6 (mi proyecto necesita ejecutarse en 1.6). Intenté buscar en Google esta excepción, pero no obtuve ninguna publicación relevante para mi problema. Las preguntas relevantes sobre stackoverflow hablan sobre NullPointerException.

Creo que el problema debe ser con mi biblioteca, pero no puedo señalar la causa raíz.

Gracias

+0

¿El problema es con un JSP específico o con todos los JSP? ¿Cómo gestionas las dependencias - maven/ivy/gradle o simplemente copias de jarras a mano? Puede consultar su lista de dependencias para ver si se incluye alguna biblioteca tomcat como dependencia del proyecto; ese será probablemente el problema. – jmruc

+0

El problema es con todas las jsps. He copiado todos los archivos jar a mano en la carpeta lib de proyectos. Verificará las dependencias en mi biblioteca de tomcat y le dejaré saber – Rishabh

Respuesta

8

Esto puede suceder cuando se tiene archivos JAR Tomcat-específicas en su aplicación web de /WEB-INF/lib . Esto no está bien. Debe eliminar todos los archivos JAR específicos del servletcontainer desde allí. Ellos no pertenecen allí en absoluto. Se supone que son ya proporcionados por el servletcontainer. El /WEB-INF/lib solo debe contener bibliotecas específicas de la aplicación web que no sean proporcionadas por servletcontainer.

Si los ha colocado allí como resultado de un intento unthoughtful para corregir los errores de compilación, a continuación, lea atentamente esta respuesta la forma de resolver de la manera correcta: How do I import the javax.servlet API in my Eclipse project?

+0

Lo siento por la respuesta tardía. Estuve atrapado en otros proyectos. Tu respuesta tiene mucho sentido y recuerdo haber utilizado el servletcontainer específico JAR en mi WEB-INF/lib. ¡Eliminará esos JAR contradictorios y le permitirá saber cómo funcionan las cosas! Gracias, – Rishabh

+0

Gracias BalusC, limpiar los frascos en/lib resolvió el problema! – Rishabh

+0

De nada. – BalusC

0

Si la limpieza de su proyecto no ayudó, tal vez lo que necesita para claro su caché.

El caché Netbeans se encuentra en algún lugar ...
C: \ Documents and Settings \ myself.netbeans \ 7.0 \ var \ cache

+0

Limpiar la caché en dosent del eclipse soluciona el problema. Creo que el problema debe ser debido a las jarras faltantes/inconsistentes – Rishabh

0

elimine lo siguiente de lib.

  1. Comprobar si mismo frasco con diferentes versiones
  2. Todos los frascos relacionados con catalina
  3. el-api.jar
  4. jsp-api.jar

Esto sin duda va a funcionar.

Cuestiones relacionadas