9

私はJava Webアプリケーションを持っています。この新しいプロジェクトをセットアップしましたが、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.

プロジェクトのクリーンアップとビルドを何度も試み、最新の service-api.jar を取得しました。私のライブラリは非常に広範であり、このエラーの原因となっている jar 間に矛盾があるかどうかを判断できません。jdk 1.6 の Apache Tomcat 6 でプロジェクトを実行しています (私のプロジェクトは 1.6 で実行する必要があります)。この例外をグーグルで調べてみましたが、私の問題に関連する投稿はありませんでした。stackoverflow に関する関連する質問では、NullPointerException について説明しています。

問題は私のライブラリにあるに違いないと思いますが、根本的な原因を指摘することはできません。

ありがとう

4

3 に答える 3

11

これは、Web アプリケーションの .xml に Tomcat 固有の JAR ファイルがある場合に発生する可能性があります/WEB-INF/lib。これは正しくないです。そこからすべてのサーブレットコンテナ固有の JAR ファイルを削除する必要 があります。彼らはそこにまったく属していません。それらは、サーブレットコンテナ自体によってすでに提供されているはずです。/WEB-INF/libには、サーブレットコンテナによって提供されない webapp 自体に固有のライブラリのみを含める必要があります。

コンパイル エラーを修正するための思慮のない試みの結果としてそれらを配置した場合は、この回答をよく読んで正しい方法で解決してください: How do I import the javax.servlet API in my Eclipse project?

于 2012-10-10T21:52:09.667 に答える
0

プロジェクトをクリーニングしても問題が解決しない場合は、おそらくキャッシュをクリアする必要があります。

Netbeans キャッシュはどこかにあります...
C:\Documents and Settings\myself.netbeans\7.0\var\cache

于 2012-10-10T07:53:05.097 に答える
0

以下を lib から削除します。

  1. 異なるバージョンの同じ jar を確認する
  2. カタリナ関連のすべての jar
  3. el-api.jar
  4. jsp-api.jar

これは間違いなく機能します。

于 2015-06-04T11:15:04.633 に答える