2012-10-10 155 views
7

我有一个Java Web应用程序。我已经建立了这个新项目,并收到以下异常,当我运行一个jsp,Servlet.service()抛出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. 

我试图清理和建设项目很多次,获取最新服务api.jar中,我的lib是非常广泛并且我无法弄清楚任何导致此错误的jar之间是否存在任何不一致。我在jdk 1.6上运行Apache Tomcat 6上的项目(我的项目需要在1.6上运行)。我试图用google搜索这个异常,但没有得到任何与我的问题相关的帖子。关于stackoverflow的相关问题讨论了NullPointerException。

我认为这个问题必须与我的图书馆,但我不能指出根本原因。

感谢

+0

是否存在特定JSP或所有JSP的问题?你如何处理依赖关系 - maven/ivy/gradle还是仅仅手工复制jar文件?你可以看看你的依赖项列表,看是否有任何tomcat库被包含为项目依赖项 - 这很可能是问题所在。 – jmruc

+0

问题出在所有jsps上。我已经手动将所有jar文件复制到我的项目lib文件夹中。将检查我的tomcat库中的依赖关系,并让你知道 – Rishabh

回答

8

这可以当你在你的webapp的/WEB-INF/lib Tomcat的特定JAR文件发生。这个不对。您应该从删除所有servletcontainer特定的JAR文件。他们根本不属于那里。它们应该是已经由servletcontainer本身提供的/WEB-INF/lib应该只包含特定于webapp本身的库,这些库不是由servletcontainer提供的。

如果你已经把他们那里作为一个胆大妄为的企图修复编译错误的结果,那么请仔细阅读这个答案如何解决这个问题的正确方法:How do I import the javax.servlet API in my Eclipse project?

+0

对于迟到的回复抱歉。我被卷入其他项目。你的回答很有意义,我记得在我的WEB-INF/lib中使用servletcontainer特定的JAR。将删除这种冲突的JAR,并让你知道事情是如何工作的! 谢谢, – Rishabh

+0

感谢BalusC,清理/ lib中的jar解决了问题! – Rishabh

+0

不客气。 – BalusC

0

如果清洗你的项目没有帮助,也许你需要清除缓存

,Netbeans的缓存位于某处...
C:\ Documents和Settings \ myself.netbeans \ 7.0 \ VAR \缓存

+0

在eclipse dosent中清理缓存解决了这个问题。我认为问题必须是因为缺少/不一致的罐子 – Rishabh

0

取下的lib下面。

  1. 检查同一个jar与不同版本的
  2. 所有卡塔利娜相关罐子
  3. EL-api.jar中
  4. 的jsp-api.jar中

这肯定会工作。

相关问题