SEVERE: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: ошибка при запуске
Я столкнулся с этой ошибкой, когда попытался запустить мое приложение в Tomcat.
Я уже проверил версию tomcat и java home. Оба используют java 6.
Есть ли недостающая банка? Или это мой веб-xml? Я не использую инструмент 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:\RCBC\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf\Catalina\localhost\ICard.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
Ответы
Ответ 1
Получено решение этой проблемы.... Wooo
-
Убедитесь, что сервер приложений (Tomcat и т.д.) использует ту же версию исполнения Java, что и ваше приложение Java.
-
Убедитесь, что ваш путь jre path не jdk для среды среды выполнения
-
Убедитесь, что при создании проекта выберите соответствующие версии среды выполнения сервера.
Ответ 2
Эта проблема возникает по разным причинам. Он может возникнуть, если вы используете файл w760 > boot built war. В качестве Spring загрузочных веб-узлов и остатков стартовых проектов банки имеют встроенный Tomcat, поэтому сбой "SEVERE: ContainerBase.addChild: start: org.apache.catalina.LifecycleException".
Вы можете исправить это, исключив встроенный tomcat во время упаковки, используя исключения в случае maven.
Зависимость Maven от spring -boot-starter-web будет выглядеть как
<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>
Ответ 3
По моему мнению, это произойдет, если есть два класса с одинаковым именем, но с другой версией. Обычно это происходит из-за servlet-api.jar.
Если он присутствует в папке lib вашей войны, то pls удалите его, используя любой инструмент, используемый для построения войны. Или в случае maven добавьте зависимость с областью действия, указанной как "предоставленная". Это решит проблему компиляции, и во время выполнения она будет ссылаться на банку, предоставляемую серверной средой.
Pls настраивает зависимость следующим образом:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
Ответ 4
В результате этой ошибки в моем случае было два метода @GET с одним и тем же путем в одном ресурсе. Изменение @Path одного из методов разрешило это для меня.
Ответ 5
Моя проблема заключалась в том, что у меня был @WebServlet("/route")
и тот же сервлет, объявленный в web.xml
Ответ 6
Основная причина: SOAPMessageContext NoClassDefFoundError
Поэтому вам нужно импортировать этот класс или банку
в IDEA
- ctrl + shift + alt + S, "Библиотеки", найдите отсутствующий класс.
- отредактируйте локальную конфигурацию Maven.
.m2/репозиторий/ваш отсутствующий класс (например, commons-logging)/.../maven-metadata-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>
потому что Maven найдет "metadata-central.xml" конфигурацию последней версии как версию для использования проекта.
простите мой китайский английский:)
Ответ 7
Странная ошибка, вы можете попробовать методы, данные james goooseling, а также я сделал это следующими способами:
-
Удалите все банки или библиотеки из путей сборки и lib-папок и добавьте их снова в папку lib или создайте путь по своему желанию.
-
Проверьте, есть ли у вас сервлет-аннотация @WebServlet
для данного сервлета, и если у него есть сопоставление в web.xml. Это самая распространенная ошибка, из-за которой tomcat запутывается, что он должен использовать шаблон url.
Ответ 8
Проверьте файлы .project и .classpath. Проверьте версию java и другие данные, сделанные повторно. Если эти и отсутствующие или неправильно сопоставленные
Ответ 9
Я не уверен, что произошло в вашем случае, что исправил проблему, но ваша проблема была в этой строке:
Caused by: java.lang.NoClassDefFoundError: javax/xml/rpc/handler/soap/SOAPMessageContext
Вам нужно добавить jaxrpc-api.jar
в /lib
или добавить
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>x.x.x</version>
</dependency>
для ваших зависимостей maven.
Ответ 10
У меня был такой же оператор ошибки после сообщения об ошибке "Не удалось получить доступ":
Команда
#cat callflow-java-logger-1.log.0
Выход
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
В моем случае решение меняло разрешения на сокет
-rw------- 1 owner creator size date ojdbc14.jar
Этот файл не был первоначально размещен в /WEB -INF/lib, что, вероятно, было связано с тем, как работает BIRT. Это может быть сложно, если вы имеете дело с большим количеством файлов.
Ответ 11
В моем случае имя сервлета, определенное в файле web.xml, не было таким же, как имя sevlet в теге сопоставления сервлета. Я исправил это, и WAR был успешно развернут.
Ответ 12
моя проблема заключалась в аннотации @WebServelet, и из-за того, что имя было повторено, у меня было два из @WebServlet("/route")
в моем коде по ошибке (я копирую и вставляю и забыл изменить название маршрута)
Ответ 13
В моем случае (проект Spring MVC + Hibernate) я добавил Controller, Service, Dao, класс Model и страницу тимьяна. Просто не отображать новый класс модели в файле "hibernate.cfg.xml". Так что получил эту ошибку. Но после сопоставления новой модели класс снова получил ошибку. Затем удалил Контроллер, Сервис, Дао, Модель класса. Листья тимьяна и новые. Также нанесена на карту новая модель класса. Тогда ошибка исчезла.
Ответ 14
Помимо всего прочего, для меня это происходило, потому что я активировал NewRelic в моем setenv.sh:
NR_JAR=/opt/newrelic/newrelic.jar; export NR_JAR
Как только я прокомментировал это, удалив новые реликтовые хуки, проблема исчезла. Это происходило только для конечных точек, использующих Apache CXF.
Ответ 15
при работе с весенней загрузкой проблема заключалась в том, что для библиотеки tomcat необходимо установить
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
Ответ 16
Что помогло мне, так это удаление моей целевой папки и повторная компиляция проекта. Эта проблема возникла у меня, когда я использовал второй сервер для моих тестов, для которых требовался работающий сервер. Вывод: удалите целевой файл, когда вы сделаете большие изменения в файле войны.