Sévère: ContainerBase.addChild: date de début:org.Apache.Catalina.LifecycleException: n'a pas pu démarrer erreur
j'ai rencontré cette erreur quand j'ai essayé d'exécuter mon application dans Tomcat. J'ai déjà vérifié la version de tomcat et java home. Les deux utilisent java 6.
il manque un pot? Ou est-ce mon xml web? Je n'utilise aucun outil maven.
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ICard]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: javax/xml/rpc/handler/soap/SOAPMessageContext
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:108)
at org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:279)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:141)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
Caused by: java.lang.ClassNotFoundException: javax.xml.rpc.handler.soap.SOAPMessageContext
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 33 more
Jan 10, 2014 4:05:06 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor F:RCBCworkspace.metadata.pluginsorg.eclipse.wst.server.coretmp1confCatalinalocalhostICard.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ICard]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Jan 10, 2014 4:05:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8100"]
Jan 10, 2014 4:05:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 10, 2014 4:05:06 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4003 ms
15 réponses
ont la solution pour ce problème.... Wooo
assurez-vous que le serveur D'application (Tomcat etc.) utilise la même version java runtime que celle utilisée par votre application java.
assurez-vous que votre chemin JRE n'est pas le chemin jdk pour les environnements runtime
assurez-vous lors de la création d'un projet de sélectionner les versions d'exécution de serveur appropriées.
cette question se pose pour des raisons différentes. Il peut se produire si vous utilisez le fichier war construit par botte de printemps. Comme les jars de démarrage de web et de restarters ont intégré Tomcat dedans, échoue donc avec " SEVERE: ContainerBase.addChild: date de début: org.Apache.Catalina.LifecycleException".
Vous pouvez corriger cela en excluant le tomcat intégré au moment de l'empaquetage en utilisant exclusions en cas de maven.
Maven dépendance de "spring-boot-starter-web" ressemblera à
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
selon moi, cela se produirait s'il y avait deux classes offensantes du même nom mais avec une version différente. Habituellement, cela se produit à cause de servlet-api.pot. Si son présent dans le dossier lib de votre guerre, alors pls l'enlèvent en utilisant n'importe quel outil utilisé pour construire la guerre. Ou dans le cas de maven, ajouter la dépendance avec la portée spécifiée comme "fournie". Cela résoudra le problème de compilation et à l'exécution, il se référera au jar fourni par l'environnement du serveur. Pls configurer la dépendance suivre:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
ce qui a causé cette erreur dans mon cas était d'avoir deux méthodes @GET avec le même chemin dans une seule ressource. Changer le @chemin d'une des méthodes résolu pour moi.
raison Principale:SOAPMessageContext NoClassDefFoundError Vous devez donc importer cette classe ou ce pot
IDÉE
- ctrl+maj+ alt+ S e"bibliothèques", trouver la classe absente.
- éditer la configuration Maven locale.
.m2 / Dépôt / votre classe absente (par exemple commons-logging)/.../maven-métadonnées-central.xml
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<versioning>
<latest>1.2</latest>
<release>1.2</release>
<versions>
<version>1.0</version>
<version>1.0.1</version>
<version>1.0.2</version>
<version>1.0.3</version>
<version>1.0.4</version>
<version>1.1</version>
<version>1.1.1</version>
<version>1.1.2</version>
<version>1.1.3</version>
<version>1.2</version>
</versions>
<lastUpdated>20140709195742</lastUpdated>
</versioning>
</metadata>
<latest>your need absend class version and useful</latest>
parce que Maven trouvera les métadonnées-central.xml' config dernière version du projet d'utilisation de la version.
pardonnez mon chinois anglais:)
mon problème était que j'avais @WebServlet ("/route") et le même servlet déclaré dans web.xml
s'il vous Plaît vérifier votre .projet de et de .classpath fichiers. Vérifier la version java et les autres détails requis. Si ceux-ci et manquant ou mal appariés
Je ne suis pas sûr de ce qui s'est passé dans votre cas qui a réglé le problème, mais votre problème était sur cette ligne:
Caused by: java.lang.NoClassDefFoundError: javax/xml/rpc/handler/soap/SOAPMessageContext
Vous devez ajouter s ou ajouter
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>x.x.x</version>
</dependency>
pour vos dépendances maven.
j'avais la même erreur après un "impossible d'accéder à la ressource" message d'erreur:
Commande
#cat callflow-java-logger-1.log.0
Sortie
Dec 09, 2015 8:09:03 AM org.apache.catalina.loader.WebappLoader startInternal
SEVERE: LifecycleException
java.io.IOException: Failed to access resource /WEB-INF/lib/ojdbc14.jar
dans mon cas la solution était de changer les permissions du connecteur
-rw------- 1 owner creator size date ojdbc14.jar
ce fichier n'a pas été localisé initialement dans /WEB-INF/lib, ce qui est probablement dû au fonctionnement de BIRT. Il peut être délicat si vous avez affaire à un nombre plus élevé de fichier.
Bizarre d'erreur, vous pouvez essayer les méthodes donné par james goooseling et j'ai également fait par les moyens suivants:
supprimez tous les jars ou bibliothèques des répertoires build path et lib et ajoutez-les à nouveau dans lib folder ou build path comme vous le souhaitez.
vérifiez si vous avez l'annotation de servlet
@WebServlet
pour un servlet donné et s'il y a un mapping dans le web.xml aussi .. c'est l'erreur la plus commune en raison de laquelle tomcat se confond , que ce que le modèle d'url doit il l'utiliser.
dans mon cas le nom de servlet défini dans le web.xml n'était pas le même que le nom sevlet dans la balise de mappage servlet. J'ai corrigé cela et la guerre a été déployée avec succès.
mon problème était avec @WebServelet annotation et c'était à cause du nom qui a été répété, j'ai eu deux de @WebServlet("/route")
dans mon code par erreur (j'ai copié et collé et oublié de changer le nom de la route)
dans mon cas (MVC de printemps + projet D'hibernation), j'ai ajouté contrôleur, Service, Dao, classe de Modèle et page de feuilles de thym. Je n'ai pas cartographié la classe de nouveau modèle dans hibernate.cfg.xml fichier. Alors que eu cette erreur. Mais après mapping nouvelle classe de modèle a de nouveau obtenu l'erreur. Puis supprimé contrôleur, Service, Dao, Classe modèle. Page de feuilles de thym et créé récemment. Aussi mappé nouvelle classe de modèle. Ensuite, l'erreur a disparu.
en plus de toutes les autres choses, pour moi cela se passait parce que J'activais NewRelic dans mon setenv.sh:
NR_JAR=/opt/newrelic/newrelic.jar; export NR_JAR
Une fois que j'ai commenté ceci, en enlevant les crochets de newrelic, le problème a disparu. Cela ne se produisait que pour les paramètres utilisant apache CXF.
lorsque vous travaillez avec spring boot, le problème est que la bibliothèque tomcat doit définir
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>