Подтвердить что ты не робот

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
4b9b3361

Ответ 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

Что помогло мне, так это удаление моей целевой папки и повторная компиляция проекта. Эта проблема возникла у меня, когда я использовал второй сервер для моих тестов, для которых требовался работающий сервер. Вывод: удалите целевой файл, когда вы сделаете большие изменения в файле войны.