Outils pour utilisateurs

Outils du site


ide:eclipse:tomcat

Ceci est une ancienne révision du document !


Différentes versions de Tomcat

Pour mémoire ci-dessous, la version à prendre est fonction de la version de J2EE à exploiter.

Version de TomcatJ2EE/Java EE supportéDynamic Web Module supporté
v3.21.22.2
v4.01.2, 1.32.3
v4.11.2, 1.32.3
v5.01.2, 1.3, 1.42.4
v5.51.2, 1.3, 1.42.4
v6.01.2, 1.3, 1.4, 5, 62.5
v7.01.2, 1.3, 1.4, 5, 63.0
v8.01.2, 1.3, 1.4, 5, 6, 73.1
v8.51.2, 1.3, 1.4, 5, 6, 73.1
v9.01.2, 1.3, 1.4, 5, 6, 7, 84.0?

J'ai volontairement mis un 4.0? car lors de la création d'un serveur Tomcat, il n'est possible que de sélectionner la version 3.1 sous Eclipse Neon. Mais si on importe la version 3.1 de servlet-api.jar, il est indiqué que la classe GenericFilter est introuvable, classe qui n'existe que dans la version 4.0.

Ajout d'un serveur Tomcat

Faites File|New|Other… puis sélectionnez Server|Server. Il est alors nécessaire de choisir la version de Tomcat à utiliser. De préférence utilisez la dernière version disponible si le projet le permet. Sélectionnez la Target runtime ou créez en une. Le dossier de Tomcat sous Windows est le dossier Apache Tomcat de C:/Programmes, sous Linux il est généralement /usr/share/tomcat-XXX et valider.

Pour vérifier que la configuration du serveur est correct, lancez-le et allez dans votre navigateur Internet à l'adresse localhost:8080

Problèmes

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest

GRAVE: Begin event threw error
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
  at java.lang.ClassLoader.defineClass1(Native Method)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
  ... XXX more

Il manque tomcat-servlet-api dans la variable environnement CLASSPATH.

Allez dans le menu Run|Run Configurations…. Sélectionnez le server Tomcat, allez dans l'onglet Classpath, cliquez sur User Entries et validez Add External JARs…. Ajoutez les 3 fichiers contenus dans servlet-api : el-api.jar, jsp-api.jar et servlet-api.jar. La version de servlet-api doit correspondre avec la version du Dynamic Web Module dans le tableau du paragraphe Différentes versions de Tomcat.

java.lang.NoClassDefFoundError: javax/servlet/GenericFilter

GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
  at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  at org.apache.catalina.core.ContainerBase.startInternal(Unknown Source)
  at org.apache.catalina.core.StandardHost.startInternal(Unknown Source)
  at org.apache.catalina.util.LifecycleBase.start(Unknown Source)
  at org.apache.catalina.core.ContainerBase$StartChild.call(Unknown Source)
  at org.apache.catalina.core.ContainerBase$StartChild.call(Unknown Source)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
  ... 7 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/GenericFilter
  at java.lang.ClassLoader.defineClass1(Native Method)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
  ... XXX more

javax.servlet.GenericFilter n'est disponible qu'à partir de la version 4.0 de servlet-api. Je suppose que Tomcat 9.0 a été conjugué avec servlet-api-3.1 malgré l'avertissement donné au paragraphe Différentes versions de Tomcat.

ide/eclipse/tomcat.1478341295.txt.gz · Dernière modification : de root