Je me bats depuis 6 à 7 heures pour essayer de comprendre ce qui n'allait pas avec mon serveur Apache Tomcat. Dans tous mes projets, la version jdk
est passée de 1.6
à 1.8
.
Pour résoudre le version conflict
, j'ai vérifié si la version compilée et la version JVM de Tomcat étaient identiques en prenant l'aide de ici .
Pour plusieurs contextes avec la même erreur de chemin, je sais que je dois supprimer les balises de contexte dupliquées dans server.xml
. Donc, je vérifie d’abord le projet Serveurs (qui est créé lui-même lorsque vous ajoutez Apache Tomcat Server dans Eclipse) et n’en trouve aucun. Je me suis donc plongé dans le répertoire (Eclipse WorkSpace) metadata\.plugins\org.Eclipse.wst.server.core\tmp3\conf
et j'ai supprimé les balises Context dupliquées, avec l'aide de ici .
Maintenant, lorsque je crée un nouveau projet Web dynamique, tout fonctionne correctement et je peux voir la page Web. Mais si j'essaie d'accéder aux fichiers HTML, XHTML de ces anciens projets dans lesquels le jdk a été modifié, ce org.Apache.catalina.LifecycleException
continue de s'afficher et le serveur ne parvient pas à démarrer. Par conséquent, ces balises Context dupliquées continuent à se créer chaque fois que je démarre le serveur.
Aucun de mes anciens projets d'application Web ne semble fonctionner maintenant.
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Impossible de démarrer le composant [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/EdBurns_ChrisSchalk]]..... SEVERE: Un conteneur enfant a échoué au démarrage Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Impossible de démarrer le composant [StandardEngine [Catalina] .StandardHost [localhost]] .... Causée par: Java.lang.RuntimeException: type de valeur d'élément inattendu dans annotation: 0
Comment éviter que ces balises context ne se construisent encore et encore dans server.xml . Deuxièmement, comment rétablir le fonctionnement de ces anciens projets Web?
Cela empêchera la création de plusieurs balises de contexte à chaque demande.
1)Arrête le serveur
2)Nettoyer le répertoire de travail de Tomcat
J'ai eu une erreur similaire et l'ai corrigée en procédant comme suit: 1. Sous Projet Serveurs (créé lui-même lorsque vous ajoutez Apache Tomcat Server dans Eclipse), ouvrez le fichier server.xml 2. Commentez la ligne
<Context docBase=... />
Si vous n'utilisez pas de servlet basé sur des annotations, veuillez supprimer les annotations @WebServlet ("/ YourServletName") du début du servlet. Cette annotation confond le mappage avec web.xml. Une fois cette annotation supprimée, le serveur Tomcat fonctionnera correctement.
Cela semble être un problème avec le référentiel Maven local. (dossier .m2) peut être dû à un fichier .jar corrompu
Pour moi, les actions suivantes ont aidé à surmonter ce problème.
Sur mon système de fichiers local, j'ai supprimé le répertoire .m2 (référentiel local Maven)
Dans Eclipse , a mis à jour le projet (sélectionnez Maven> Mettre à jour le projet ).
Ran l'application à nouveau sur le serveur Tomcat.
Dans mon cas, le fichier servlet-api.jar dans jre/lib/ext du répertoire jdk est en conflit avec le fichier servlet-api.jar dans Tomcat, ce qui supprime le servlet-api.jar de jre/lib/ext dans le répertoire jdk peut résoudre le problème.