2012-10-10 74 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中

這肯定會工作。

相關問題