it-roy-ru.com

SEVERE: ContainerBase.addChild: start: org.Apache.catalina.LifecycleException: не удалось запустить ошибку

Я столкнулся с этой ошибкой, когда попытался запустить свое приложение в Tomcat .... Я уже проверил домашнюю версию Tomcat и Java. Оба используют 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
30
james goooseling

Есть решение этой проблемы .... Wooo 

  1. Убедитесь, что сервер Appliction (Tomcat и т.д.) Использует ту же версию времени выполнения Java, что и приложение Java.

  2. Убедитесь, что вы используете jre path, а не jdk path для среды выполнения

  3. Убедитесь, что при создании проекта выберите соответствующие версии сервера.

16
james goooseling

Эта проблема возникает по разным причинам. Это может встретиться, если вы используете встроенный военный файл Spring boot. Так как в весенние загрузочные веб-файлы и в остальные стартовые проекты встроен Tomcat, он завершается с ошибкой «SEVERE: ContainerBase.addChild: start: org.Apache.catalina.LifecycleException».

Это можно исправить, исключив встроенный Tomcat во время упаковки, используя exclusion в случае 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>
13
nkharche

По моему мнению, это произошло бы, если бы было два класса-нарушителя с одинаковыми именами, но с разной версией. Обычно это происходит из-за servlet-api.jar . Если он присутствует в папке lib вашей войны, то удалите его, используя любой инструмент, используемый для построения войны. Или в случае maven добавьте зависимость с областью, указанной как «предоставлено». Это решит проблему компиляции и во время выполнения будет ссылаться на jar, предоставляемый серверной средой Pls настраивает зависимость следующим образом:

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
</dependency>
10
Mahesh C.

Основная причина: SOAPMessageContext NoClassDefFoundError Итак, вам нужно импортировать этот класс или jar

в идее

  1. ctrl+shift+alt+SБибли "Библиотеки", найдите отсутствующий класс.
  2. отредактируйте локальный конфиг Maven.

.m2/репозиторий/ваш отсутствующий класс (например, регистрация общего доступа) /.../ 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 найдет последнюю версию config 'metadata-central.xml' в качестве версии использования проекта.

прости мой китайский английский :)

2
fonxian

Моя проблема заключалась в том, что у меня была @WebServlet("/route") и тот же сервлет, объявленный в web.xml 

2
Kronen

В моем случае причиной этой ошибки было наличие двух методов @GET с одинаковым путем в одном ресурсе. Изменение @Path одного из методов решило это для меня.

2
gabrielkerekes

Я не уверен, что произошло в вашем случае, который исправил проблему, но ваша проблема была в этой строке:

Caused by: Java.lang.NoClassDefFoundError: javax/xml/rpc/handler/soap/SOAPMessageContext

Вам нужно добавить jaxrpc-api.jar к вашим /libs или добавить

<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxrpc-api</artifactId>
    <version>x.x.x</version>
</dependency>

к твоим мавенским зависимостям.

0
Nielsvh

В моем случае имя сервлета, определенное в файле web.xml, не совпадало с именем сервлета в теге отображения сервлета. Я исправил это, и WAR был успешно развернут.

0
charlie

У меня было то же самое сообщение об ошибке после сообщения об ошибке «Не удалось получить доступ к ресурсу»:

Команда

#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. Это может быть сложно, если вы имеете дело с большим количеством файлов.

0
Alan

Странная ошибка, вы можете попробовать методы, предоставленные james goooseling, а также я сделал это следующими способами: 

  • Удалите все jar или библиотеки из пути сборки и папок lib и снова добавьте их в папку lib или путь сборки по своему желанию.

  • Проверьте, есть ли у вас аннотация сервлета @WebServlet для данного сервлета и есть ли у него также отображение в web.xml ... это самая распространенная ошибка, из-за которой Tomcat запутывается, что шаблон URL должен использовать.

0
swapyonubuntu

В моем случае (проект Spring MVC + Hibernate) я добавил Controller, Service, Dao, Model class и страницу тимьяна. Просто не отображать новый класс модели в файле "hibernate.cfg.xml". Так что получил эту ошибку. Но после сопоставления новой модели класс снова получил ошибку. Затем удалил класс Controller, Service, Dao, Model. Страница листа тимьяна и создана заново. Также нанесена на карту новая модель класса. Тогда ошибка исчезла.

0
Atequer Rahman

моя проблема была с аннотацией @WebServelet, и это было из-за повторения имени, у меня было два @WebServlet("/route") в моем коде по ошибке (я скопировал и вставил и забыл изменить имя маршрута)

0
Iman Mirzadeh

Пожалуйста, проверьте ваши .project и .classpath файлы. Проверьте версию Java и другие необходимые данные. Если те и отсутствуют или неправильно совпадают 

0
Atul

Помимо всего прочего, для меня это происходило, потому что я активировал NewRelic в моем setenv.sh:

NR_JAR=/opt/newrelic/newrelic.jar; export NR_JAR

Как только я прокомментировал это, удалив крючки newrelic, проблема исчезла. Это происходило только для конечных точек, использующих Apache CXF.

0
Amalgovinus

при работе с весенней загрузкой проблема заключалась в том, что для библиотеки Tomcat необходимо установить

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-Tomcat</artifactId>
    <scope>provided</scope>
</dependency>
0
gischy