6

Eclipse3.4とWTP3.0.2を使用していて、かなり大規模な動的Webプロジェクトを実行しています。http://127.0.0.1:8080 / share /でアクセスできるようにプロジェクトを設定しましたが、アクセスするたびに次のエラーが発生します。

  java.lang.NoSuchMethodError:javax.servlet.jsp.tagext.TagAttributeInfo。(Ljava / lang / String; ZLjava / lang / String; ZZ)V
  org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:572)で
  org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401)で
  org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)で
  org.apache.jasper.compiler.TagLibraryInfoImpl。(TagLibraryInfoImpl.java:162)で
  org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)で
  org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)で
  org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)で
  org.apache.jasper.compiler.Parser.parse(Parser.java:126)で
  org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)で
  org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)で
  org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)で
  org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)で
  org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)で
  org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)で
  org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)で
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)で
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)で
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)で
  javax.servlet.http.HttpServlet.service(HttpServlet.java:853)で
  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)で
  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)で
  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)で
  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)で
  org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)で
  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)で
  org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)で
  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)で
  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)で
  org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)で
  org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)で
  org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)で
  org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:689)で
  java.lang.Thread.run(不明なソース)で

上記のファイルはどれも私自身のものではないので、問題の原因を指摘するのは非常に困難です。どこから探し始めるかについてのアイデアはありますか?

4

5 に答える 5

5

結局、私は自分自身の質問に答えました。問題は、Tomcat に追加した必要な JAR の中に競合する servlet.jar があることでした。これを削除したら、エラーが消えました。

于 2008-10-16T06:31:04.573 に答える
0

ほとんどの場合、EclipseのTomcatプラグインが競合の問題を引き起こします。同じバージョンのjarファイルを取得してEclipseのTomcatプラグインでオーバーライドすることで問題を解決できます。

于 2009-03-18T09:31:22.343 に答える
0

私は同様の問題を抱えていましたが、アプリケーションが使用しているクラスパスに正しいバージョンのservlet.jarがあることを確認し、クラスパスに古いJ2EE.jarファイルを保持していたため、この問題を修正しました。問題。したがって、クラスパスから削除して、デフォルトでファイルを使用するようにしました。

于 2010-07-13T12:18:33.403 に答える
0

Mavenが依存関係を処理し、JettyをWebサーバーとして使用して、Eclipse Heliosを実行するのと同じ問題がありました。Spring 3.1 にアップデートした後、突然この問題が発生しましたが、ローカルの開発マシンでのみ発生しました。

まず、ローカルの Maven リポジトリの spring フォルダーと jetty フォルダーを削除し、依存関係を更新しましたが、状況は改善されませんでした。

次に、jetty に付属している servlet-api および servlet-api-2.5 フォルダーを削除しました (ただし、その他はすべて残しました)。動作するようになりました。

すべてがクラスパスの魔法を歓迎します。

于 2011-03-02T09:20:42.267 に答える
0

「Preferences->Tomcat->Advanced->Tomcat base」で Tomcat パスを設定しましたか?

そのパスを消去して (既定の構成に戻す)、問題が解決するかどうかを確認してください。

于 2008-10-16T06:20:50.553 に答える