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

StackOverflow https://stackoverflow.com/questions/207565

  •  03-07-2019
  •  | 
  •  

Question

J'utilise Eclipse 3.4 avec WTP 3.0.2 et exécute un projet Web dynamique assez volumineux. J'ai configuré le projet pour pouvoir y accéder à l'adresse http://127.0.0.1:8080/share/. mais à chaque fois que j'obtiens l'erreur suivante:

  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)

Comme aucun des fichiers ci-dessus n’est le mien, il est très difficile de déterminer la cause du problème. Des idées par où commencer à chercher?

Était-ce utile?

La solution

J'ai fini par répondre à ma propre question: le problème était que parmi les fichiers JAR nécessaires que j'avais ajoutés à Tomcat, il y avait un fichier servlet.jar en conflit. Lorsque j'ai supprimé ceci, l'erreur a disparu.

Autres conseils

Avez-vous défini un chemin d'accès Tomcat dans les "Préférences" de Tomcat- > Options avancées- > Base de Tomcat " ?

Essayez de nettoyer ce chemin (en revenant à la configuration par défaut) et vérifiez si cela résout le problème.

Très probablement, le plugin tomcat dans l'éclipse cause le problème du conflit. Je parviens à résoudre le problème en récupérant le même fichier jar de version et en le remplaçant dans le plugin tomcat de l'éclipse.

J'avais un problème similaire et j'avais résolu ce problème en m'assurant d'avoir la bonne version de servlet.jar dans le chemin d'accès aux classes utilisé par mon application, mais j'avais également conservé l'ancien J2EE.jar dans le chemin d'accès aux classes, ce qui était à l'origine du problème principal. Par conséquent, je l'ai supprimé du classpath pour m'assurer qu'il utilise les fichiers par défaut.

J'ai eu le même problème avec Eclipse Helios, avec la gestion des dépendances par Maven et l'utilisation de Jetty comme serveur Web. Après la mise à jour vers Spring 3.1, j'ai soudainement eu ce problème, mais uniquement sur ma machine de développement locale.

J'ai d'abord supprimé les dossiers Spring et Jetty de mon référentiel Maven local et mis à jour les dépendances, mais cela n'a pas amélioré la situation.

Ensuite, je viens de supprimer les dossiers servlet-api et servlet-api-2.5 fournis avec jetty (mais en laissant tout le reste), je l’ai fait fonctionner.

Tous saluent la magie du classpath.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top