2010-04-14 4 views
28

J'ai déployé une application Web Apache Wicket qui utilise Spring et Hibernate sur mon instance Tomcat 5.5. Lorsque je navigue vers l'interface Tomcat Manager, je constate que l'application Web que j'ai déployée n'est pas en cours d'exécution. Lorsque j'appuie sur 'Start', j'obtiens le message d'erreur suivant: "FAIL - L'application au chemin du contexte/spaghetti n'a pas pu être démarrée".Comment résoudre Error listenerStart lors du déploiement d'une application Web dans Tomcat 5.5?

Mon catalina.log contient les éléments suivants:

Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile 
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/jsp/JspPage.class 
Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile 
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/spaghetti] startup failed due to previous errors 

Extrait de web.xml:

 
    <listener> 
     <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 

Toute aide est grandement appréciée.

+0

Regardez ceci: http://blog.trifork.com/2011/03/18/debugging-the-dreaded-severe-error-listenerstart-and-severe-error-filterstart-tomcat-error-messages/ –

Répondre

31
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar 
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar 

Vous devriez pas avoir des bibliothèques spécifiques au serveur dans le /WEB-INF/lib. Laissez-les dans la propre bibliothèque du serveur d'applications. Cela conduirait seulement à des collisions dans le classpath. Débarrassez-vous de toutes les bibliothèques spécifiques au serveur d'applications en /WEB-INF/lib (et également en JRE/lib et JRE/lib/ext si vous en avez placé une). Une cause courante que les bibliothèques spécifiques à appserver sont incluses dans la bibliothèque webapp est que les débutants pensent que c'est la bonne façon de corriger les erreurs de compilation parmi d'autres les classes javax.servlet ne pouvant être résolues. Les mettre dans la bibliothèque de webapp est la mauvaise solution. Vous devez les référencer dans le chemin de classe lors de la compilation, c'est-à-dire javac -cp /path/to/server/lib/servlet.jar et ainsi de suite, ou si vous utilisez un IDE, vous devez intégrer le serveur dans l'EDI et associer le projet Web au serveur. L'EDI prélève automatiquement des bibliothèques spécifiques au serveur dans le chemin de classe (buildpath) du projet webapp.

+0

Merci pour l'aide BalusC. Je n'ai pas explicitement ajouté le servlet-api ou jsp-api à la liste de dépendances dans mon pom.xml, en fait ils ne sont pas listés là. Peut-être que c'est une dépendance de l'une des dépendances que j'ai. Je vais donner votre suggestion. – John

+0

J'ai rencontré un problème similaire, dans WTP dans Eclipse, dans '/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/...' Il a démarré après la mise à niveau de Servlet 2.5 à 3.0 , donc j'ai figuré un clic droit sur le serveur, puis "Clean Tomcat Work Directory" devrait l'effacer. Mais les choses revenaient toujours. Finalement, 'mvn dependency: tree' a montré que certaines dépendances incluaient à la fois' javax.servlet: servlet-api: jar: 2.5' et 'org.mortbay.jetty: servlet-api: jar: 2.5-20081211'. – Arjan

59

J'ai trouvé que suivre ces instructions m'a aidé à trouver quel était le problème. Pour moi, c'était le tueur, ne sachant pas ce qui était cassé.

http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/

Je cite le lien

Dans Tomcat 6 ou au-dessus, l'enregistreur par défaut est l'enregistreur » java.util.logging » et non Log4J. Donc, si vous essayez d'ajouter un fichier "log4j.properties" - cela ne fonctionnera pas. L'enregistreur de Java recherche un fichier appelé « logging.properties » comme indiqué ici: http://tomcat.apache.org/tomcat-6.0-doc/logging.html

Donc, pour obtenir les détails de débogage créer un fichier « logging.properties » dans votre dossier »/ WEB-INF/classes » de votre guerre et vous êtes tous ensemble.

Et maintenant, lorsque vous redémarrez votre Tomcat, vous verrez tout votre débogage dans toute sa splendeur !!!

Exemple de fichier logging.properties:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler 
+0

Merci! Exactement ce que vous avez dit et magiquement nous pouvons vérifier la cause réelle du problème et arrêter de perdre du temps. :-) À votre santé. –

+1

Je voudrais pouvoir avoir plus d'une fois cette réponse. – Chad

+2

Ceci n'est qu'une partie du problème (/ my). L'erreur listenerStart s'est produite dans 'catalina.out' tandis que la piletrace a été écrite dans' localhost- .out'. Assurez-vous donc de vérifier tous les fichiers journaux de tomcat pour les stacktraces (éventuellement en découvrant le pid en utilisant 'ps aux | grep tomcat' et en découvrant les fichiers ouverts de tomcat en utilisant' lsof -p ') – Herbert

7

j'ai rencontré cette erreur lorsque le JDK que je compilé l'application sous était différente de la machine virtuelle Java tomcat. J'ai vérifié que le gestionnaire Tomcat exécutait jvm 1.6.0 mais l'application a été compilée sous java 1.7.0. Après la mise à jour de Java et la modification de JAVA_HOME dans notre script de démarrage (/etc/init.d/tomcat), l'erreur s'est dissipée.

1

Répondu par Tom Saleeba est très utile. Aujourd'hui, je aussi eu du mal avec la même erreur

28 avril 2015 19:53:27 org.apache.catalina.core.StandardContext startInternal GRAVES: Erreur listenerStart

J'ai suivi la suggestion et ajouté le fichier logging.properties. Et ci-dessous était ma raison de l'échec:

java.lang.IllegalStateException: Impossible de définir l'application Web racine système propriété lorsque le fichier WAR n'est pas étendu

La cause racine du problème était un auditeur (Log4jConfigListener) que j'ai ajouté dans le fichier web.xml. Et selon le lien SEVERE: Exception org.springframework.web.util.Log4jConfigListener, cet écouteur ne peut pas être ajouté dans un fichier WAR qui n'est pas développé.

Il peut être utile que quelqu'un sache que cela se produisait sur l'équipement OpenShift JBoss.

Questions connexes