Eclipse&amp; JSP:java.lang.NoSuchMethodError:javax.servlet.jsp.tagext.TagAttributeInfo。<init>(Ljava / lang / String; ZLjava / lang / String; ZZ)V </init>

时间:2008-10-16 06:07:24

标签: eclipse jsp eclipse-3.4

我正在使用Eclipse 3.4和WTP 3.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
  at org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:572)
  at org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401)
  at org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)
  at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:162)
  at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)
  at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
  at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)
  at org.apache.jasper.compiler.Parser.parse(Parser.java:126)
  at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
  at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
  at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)
  at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
  at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
  at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
  at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
  at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
  at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
  at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
  at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
  at java.lang.Thread.run(Unknown Source)

由于上述文件都不属于我自己,因此指出问题的原因非常困难。任何想法从哪里开始寻找?

5 个答案:

答案 0 :(得分:5)

我最后回答了自己的问题:问题是我添加到Tomcat的必要JAR中存在冲突的servlet.jar。当我删除它时,错误消失了。

答案 1 :(得分:0)

您是否在“Preferences-&gt; Tomcat-&gt; Advanced-&gt; Tomcat base”中设置了Tomcat路径?

尝试清理该路径(返回默认配置),并检查是否确实解决了问题。

答案 2 :(得分:0)

很可能eclipse中的tomcat插件导致冲突问题,我设法通过获取相同的版本jar文件并在eclipse中的tomcat插件中覆盖它来解决问题。

答案 3 :(得分:0)

我有类似的问题,我已经解决了这个问题,确保我的应用程序正在使用的类路径中有正确版本的 servlet.jar ,并且我保持旧的类路径中的J2EE.jar 文件导致了主要问题。因此,我将其从类路径中删除,以确保它默认使用文件。

答案 4 :(得分:0)

运行Eclipse Helios时遇到了同样的问题,Maven处理依赖关系并使用Jetty作为webserver。更新到Spring 3.1后,我突然遇到了这个问题,但只在我的本地开发机器上。

我首先删除了本地maven存储库中的spring和jetty文件夹并更新了依赖项,但这并没有改善这种情况。

然后我刚刚删除了jetty附带的servlet-api和servlet-api-2.5文件夹(但保留了其他所有内容),我让它工作了。

所有人都欢迎类路径的魔力。