web-dev-qa-db-fra.com

Journaux de démarrage de Tomcat - SEVERE: error filterStart comment obtenir une trace de pile?

Lorsque je lance Tomcat, le message d'erreur suivant s'affiche:

Jun 10, 2010 5:17:25 PM org.Apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Jun 10, 2010 5:17:25 PM org.Apache.catalina.core.StandardContext start
SEVERE: Context [/mywebapplication] startup failed due to previous errors

Il semble étrange que les journaux de Tomcat n'incluent pas de trace de pile. Quelqu'un a-t-il une suggestion pour augmenter la journalisation dans Tomcat afin d'obtenir des traces de pile pour des erreurs de ce type?

95
benstpierre

Vérifier la localhost_yyyy_mm_dd.log OR localhost.yyyy-mm-dd.log _ journaux créés par Tomcat, ils stockent généralement ce type d’informations. Je ne m'attendrais pas à ce que tout le stacktrace soit vidé au format standard.

137
matt b

créez un fichier nommé logging.properties dans WEB-INF/classes avec le contenu suivant:

org.Apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].handlers = Java.util.logging.ConsoleHandler
80
Micha Roon

Tomcat enregistre le stacktrace, mais il n'est pas toujours clair où se trouvent les fichiers journaux, lorsque Tomcat est démarré à partir d'un IDE. Quand je le lance à partir d'IntelliJ, CATALINA_BASE est réglé sur ${home}/.IntelliJIdea10/system/Tomcat/Unnamed_r6-idea, et les fichiers journaux sont dans [CATALINA_BASE]/logs.

Pour voir les journaux, localisez les fichiers journaux ou modifiez [CATALINA_HOME]/conf/logging.properties pour diriger la sortie du consignateur Tomcat vers la console. Ci-dessous, j'ai ajouté un deuxième gestionnaire à la configuration par défaut de Tomcat:

 org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
 org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.Apache.juli.FileHandler, Java.util.logging.ConsoleHandler

Maintenant, le stacktrace complet apparaît dans la sortie IntelliJ:

 Dec 27, 2011 12:02:45 PM org.Apache.catalina.core.StandardContext filterStart
 SEVERE: Exception starting filter filterChainProxy
 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'filterChainProxy' is defined   at
 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.Java:529)
 . . .
21
Assen Kolov

vous devez copier les fichiers

cp /path/to/solr/example/lib/ext/* /path/to/Tomcat/lib
cp /path/to/solr/example/resources/* /path/to/Tomcat/lib // or inside extracted solr

et puis redémarrer Tomcat

9
tuku

Peut-être que votre application est compilée avec un JRE différent de Tomcat.

Vérifier Java -version sur votre serveur, puis compilez votre code avec la même version. J'ai eu l'erreur parce que mon JRE standard Eclipse était de 1,6 et que Tomcat en utilisait 1,5 - cela ne peut pas fonctionner.

5
Renato

Il y a généralement une information sur le problème dans localhost. [Date] .log. Mais parfois, il n'y a rien dans ce journal. Cela peut arriver s'il y a une mauvaise configuration du projet (plusieurs développeurs ont travaillé dessus pendant longtemps et chacun a ajouté quelque chose de lui-même). J'ai fait face à ce problème sans aucune information dans le journal. Approche assez rapide et robuste:

  1. Essayez de supprimer tout ce qui peut causer des problèmes de web.xml. Vous pouvez même tout supprimer sauf tag. Si l'application ne peut toujours pas être déployée, continuez.

  2. Supprimez tous les descripteurs * .xml de WEB-INF/classes. Si l'application ne peut pas être déployée, continuez.

  3. Supprimez toute la configuration de journalisation que vous pouvez trouver dans votre war (logging.properties, log4j.properties). Essayez de déployer. A cette étape, j'ai une erreur plus informative, mais le déploiement a encore échoué.

Après avoir recherché Google pour cette erreur, j'ai découvert que ce projet incluait l'ancienne version de xerces, qui se heurtait à la version de Tomcat (qui était plus récente) et que l'application à déployer n'était pas. Après la mise à niveau de xerces dans une application Web, tout est devenu parfait.

2
Gennady Nikolaev

Dans CentOS 6 et Solr 4.4.0

J'ai dû compiler des fichiers lib pour que cette erreur soit corrigée

cp ~/solr-4.4.0/example/lib/ext/* /usr/share/Tomcat6/lib/
2
Amir Bilal

La configuration de la journalisation log4j pour Tomcat est assez simple. Ce qui suit est cité de http://Tomcat.Apache.org/Tomcat-5.5-doc/logging.html :

  1. Créez un fichier appelé log4j.properties avec le contenu suivant et enregistrez-le dans common/classes.

              log4j.rootLogger=DEBUG, R 
              log4j.appender.R=org.Apache.log4j.RollingFileAppender 
              log4j.appender.R.File=${catalina.home}/logs/Tomcat.log 
              log4j.appender.R.MaxFileSize=10MB 
              log4j.appender.R.MaxBackupIndex=10 
              log4j.appender.R.layout=org.Apache.log4j.PatternLayout 
              log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    
  2. Téléchargez Log4J (version 1.2 ou ultérieure) et placez le fichier jar log4j dans $ CATALINA_HOME/common/lib.

  3. Téléchargez Commons Logging et placez commons-logging-x.y.z.jar (et non commons-logging-api-x.y.z.jar) dans $ CATALINA_HOME/common/lib avec le fichier jar log4j.
  4. Démarrer Tomcat

Vous voudrez peut-être aussi jeter un œil à http://wiki.Apache.org/Tomcat/FAQ/Logging

1
Tommi

J'ai eu le même problème, impossible de démarrer l'application une fois qu'elle est déployée dans Tomcat. Mais, une fois que je copie le jeu de fichiers Struts dans le répertoire CATALINA_HOME\lib (répertoire Tomcat), le problème est résolu. Vous n'avez pas besoin de ces fichiers dans votre WEB_INF\lib, mais vous devez les avoir dans votre chemin de construction.

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

freemarker-2.3.16.jar

javassist-3.11.0.GA.jar

struts2-convention-plugin-2.2.1.jar

struts2-core-2.2.1.jar

xwork-core-2.2.1.jar

1
Vijay

si quelqu'un reçoit une erreur telle que SEVERE: Erreur filterStart 29 avril 2013 4:49:20 PM org.Apache.catalina.core.StandardContext startInternal SEVERE: le démarrage du contexte [/ TraceMW] a échoué pour des raisons erreurs précédentes

alors veuillez vérifier si votre répertoire Tomcat/lib contient cors-filter-1.5.jar ou non. Si vous avez un problème, vous obtiendrez l'erreur ci-dessus et votre application ne sera pas disponible.

Donc, j'ai juste réussi à copier le fichier jar d'un autre dossier Tomcat et je n'ai pas eu l'erreur mentionnée ci-dessus plus tard.

1
Prasanthi

Moi aussi j'ai eu la même erreur et j'ai eu beaucoup de mal à résoudre ce problème. J'ai passé un peu de temps silencieux à chercher sur Google et à trouver la solution suivante et mon problème a été résolu.

le problème était dû à l'absence de bibliothèques Struts2 dans le chemin de déploiement. La plupart des gens peuvent mettre les bibliothèques pour la compilation et ont tendance à oublier d'attacher les bibliothèques requises pour l'exécution. J'ai donc ajouté les mêmes bibliothèques dans l'assembly de déploiement Web et le problème était désactivé.

1
user2682165

En règle générale, la version du serveur JDK sera inférieure à l'application déployée (construite avec une version supérieure de jdk)

0
user1114134

J'ai eu un problème similaire. Le pourboire de Renato a fonctionné pour moi. J'ai utilisé une version plus ancienne de Java (sous le dossier WEB-INF/classes)) et le problème a disparu. Il aurait donc dû correspondre à la disparité de version du compilateur.

0
Prasanna HR

Je voulais juste contribuer après avoir passé la dernière heure sur un problème presque identique. Ma solution a été que nos applications .jar étaient en quelque sorte corrompues. Le fait de placer le fichier jar à partir de notre serveur de développement a donc résolu le problème.

0
matchew

Cela a fait le tour pour moi: il suffit de supprimer toutes les bibliothèques, puis de compiler et d’exécuter. Il serait rapide de confirmer les erreurs dans votre projet. Relancez le projet après avoir appliqué les bibliothèques.

0