it-roy-ru.com

Tomcat 7 "SEVERE: дочерний контейнер не удалось во время запуска"

По сути, я написал приложение springMVC (с относительно дробовиком - мой подход с первого раза по отношению к Spring). Проект отлично работает на Tomcat 6. Мой сервер Tomcat не запускается и выдает следующее исключение: 

Apr 29, 2012 3:41:00 PM org.Apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the Java.library.path: /usr/bin/jdk1.7.0_03/jre/lib/AMD64/server:/usr/bin/jdk1.7.0_03/jre/lib/AMD64:/usr/bin/jdk1.7.0_03/jre/../lib/AMD64:/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server:/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64:/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
Apr 29, 2012 3:41:00 PM org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.j2ee.server:spring-security-integration' did not find a matching property.
Apr 29, 2012 3:41:00 PM org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.jee.server:Spring3Hibernate' did not find a matching property.
Apr 29, 2012 3:41:00 PM org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.jee.server:assessment' did not find a matching property.
Apr 29, 2012 3:41:00 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Apr 29, 2012 3:41:00 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 29, 2012 3:41:00 PM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 654 ms
Apr 29, 2012 3:41:00 PM org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 29, 2012 3:41:00 PM org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Apr 29, 2012 3:41:01 PM org.Apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Sun Apr 29 15:41:01 BST 2012]; root of context hierarchy
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/root-context.xml]
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]3dd5df15: defining beans []; root of factory hierarchy
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 226 ms
Apr 29, 2012 3:41:01 PM org.Apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'appServlet'
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization started
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing WebApplicationContext for namespace 'appServlet-servlet': startup date [Sun Apr 29 15:41:01 BST 2012]; parent: Root WebApplicationContext
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]
INFO : org.springframework.context.annotation.ClassPathBeanDefinitionScanner - JSR-330 'javax.inject.Named' annotation found and supported for component scanning
INFO : org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]cf10596: defining beans [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0,org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0,org.springframework.web.servlet.view.InternalResourceViewResolver#0,dataSource,sessionFactory,homeController,userManagementController,userService,userDao,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.web.servlet.view.ContentNegotiatingViewResolver#0,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; parent: org.s[email protected]3dd5df15
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public Java.lang.String org.assessme.com.controller.HomeController.home(Java.util.Locale,org.springframework.ui.Model)
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/userManagement/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public Java.lang.Object org.assessme.com.controller.UserManagementController.home(Java.util.Locale,org.springframework.ui.Model)
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/userManagement/getUser],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.assessme.com.entity.User org.assessme.com.controller.UserManagementController.data(Java.util.Locale,org.springframework.ui.Model)
INFO : org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization completed in 1846 ms
Apr 29, 2012 3:41:03 PM org.Apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring3Hibernate]]
    at Java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.Java:252)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:111)
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1128)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:782)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1566)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1556)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:334)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:166)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1110)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:603)
    at Java.lang.Thread.run(Thread.Java:722)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring3Hibernate]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    ... 7 more
Caused by: org.Apache.Tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60
    at org.Apache.Tomcat.util.bcel.classfile.Constant.readConstant(Constant.Java:131)
    at org.Apache.Tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.Java:60)
    at org.Apache.Tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.Java:209)
    at org.Apache.Tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.Java:119)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.Java:2032)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.Java:1923)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.Java:1891)
    at org.Apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.Java:1877)
    at org.Apache.catalina.startup.ContextConfig.webConfig(ContextConfig.Java:1270)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:855)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:345)
    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:5161)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more

Я действительно не уверен, к чему это относится, я более чем рад показать любой код и т.д., Но я действительно не знаю, на что он ссылается. Ниже приведен мой pom.xml на всякий случай, который может иметь отношение к делу. 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.assessme</groupId>
    <artifactId>com</artifactId>
    <name>assessme</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <Java-version>1.6</Java-version>
        <org.springframework-version>3.1.0.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.9</org.aspectj-version>
        <org.slf4j-version>1.5.10</org.slf4j-version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>

                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.Sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.Sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- Persistence -->

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>


        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>


        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.5.6-Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.5.6-Final</version>
        </dependency>
        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.11.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-Java</artifactId>
            <version>5.1.18</version>
        </dependency>


        <!-- Jackson JSON Mapper -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.5</version>
        </dependency>

        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-Eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.Eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.Eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

У кого-нибудь есть какие-либо идеи? 

33
david99world

Когда запускается приложение сервлета 3.0, контейнер должен сканировать все классы на наличие аннотаций (если только metadata-complete = true). Tomcat использует вилку (без дополнений, только удаленный неиспользуемый код) Apache Commons BCEL для этого сканирования. Веб-приложение не запускается, потому что BCEL натолкнулся на что-то, чего он не понимает.

Если приложения нормально работают на Tomcat 6, добавление metadata-complete = "true" в ваш web.xml или объявление вашего приложения 2.5 в web.xml остановит сканирование аннотаций.

На данный момент это похоже на проблему в сканируемом классе. Однако до тех пор, пока мы не узнаем, какой класс вызывает проблему, и более внимательно посмотрим, мы не узнаем. Мне нужно изменить Tomcat, чтобы регистрировать более полезное сообщение об ошибке, в котором назван данный класс. Вы можете следить за прогрессом в этом вопросе по адресу: https://issues.Apache.org/bugzilla/show_bug.cgi?id=53161

28
Mark Thomas

вы можете исправить это с помощью: 

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>${servlet-api-version}</version>
    <scope>provided</scope>
</dependency>

при условии решает эту проблему

23
Max Sassen

Недавно я переместил на новый ПК все мои проекты Eclipse. Я испытал эту проблему. То, что я сделал, было:

  1. удалил проект из Tomcat
  2. чистый Tomcat
  3. запустить проект в Tomcat
10
arn-arn

Если вы думаете, что раньше он работал правильно, а теперь он начал показывать конкретную проблему. Тогда это просто хит и пробный метод для решения. поэтому, чтобы получить лучшее решение, вы можете выполнить следующие шаги

  1. удалите свой существующий Tomcat, если это возможно
  2. удалить свой проект и добавить свой проект с новой сборкой
  3. добавьте свой сервер Tomcat
  4. очистить проект и обновить проект
  5. перейти в режим работы или отладки
3
Ram

Обычно это проблема с файлом дескриптора web.xml. Возможно, вы перепутали определения аннотаций и описания сервлета web.xml. Пожалуйста, проверьте консоль для получения дополнительной информации.

2
Guru

«С Tomcat нет проблем».

Я пострадала 4-5 дней, чтобы решить проблему (та же самая проблема, упомянутая выше). здесь я использовал Tomcat 8.5. Наконец, проблема была решена, проблема была с "Поврежденными файлами фляги". Вы должны удалить весь свой репозиторий .m2 (для меня C:\Users\Bandham.m2\repository). den запустите команду "mvn clean install" из папки вашего проекта. 

удачного кодирования.

Дайте один UP, если это решит вашу проблему.

1
Bandham Manikanta

Tomcat Server не запускается и выдает исключение, потому что внутри раздела Deployment Descriptor:MyProyect / Servlet Mappings есть сопоставления, которые не существуют. Удалить или исправить эти элементы; тогда запуск сервера работает без проблем.

0
Gabriel

У меня та же проблема несколько месяцев назад. Это решает мою проблему, используя Maven вместо загруженной версии Spring и некоторые изменения в web.xml.

pom.xml

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>SpringWEB1</groupId>
  <artifactId>SpringWEB1</artifactId>
  <version>1</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.1.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
  </dependencies>
</project>

Controller.Java

package com.jmtm.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@org.springframework.stereotype.Controller
public class Controller {

    @RequestMapping("/hi")
    public ModelAndView hi(){
        return new ModelAndView("Hello", "msg", "Hello user.");
    }

}

весна-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:c="http://www.springframework.org/schema/c"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">

    <context:component-scan base-package="com.jmtm.controller"></context:component-scan>

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

</beans>

И самая важная часть решения - включить путь диспетчера сервлетов (A.K.A. spring-servlet.xml) в файл web.xml.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringWEB1</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

Что-то странное случается, когда я пытаюсь это решить. Любая загруженная версия Spring с maven.springframework.org/release/org/springframework/spring доставляет мне много проблем (Tomcat не может найти сервлет, Spring останавливает Tomcat, Eclipse не может запустить сервер {странный }) поэтому со многими проблемами находят много частичных решений. Я надеюсь, что это работает для вас.

В качестве дополнительной справки, в Eclipse загрузите с Eclipse Marketplace Spring STS Tool для Eclipse, это поможет вам создать файлы конфигурации (servlet.xml) и написать код для сервлета в файле web.xml.

0
Juan Torres

У меня та же проблема, но в моем случае я по ошибке добавил контекст в server.xml ($ Tomcat_Install_Dir/conf /) и не развернул соответствующую войну в webapps ($ Tomcat_Install_Dir/webapps) . Когда я удалил этот контекст и перезапустил Tomcat, он работал нормально.

0
Shiv

Это то, с чем я сталкиваюсь долгое время. 

Это произошло в прошлый раз, и выяснилось, что одним из случаев может быть развертывание плохой войны, которое произошло после того, как я обновил зависимости библиотеки/maven от pom и переустановил его.

РЕШЕНИЕ: 

right click on the server >  remove the war and 
right click on the server again > clean
make sure the maven dependencies are added to deployment Assembly
right click on the project > Run As > maven clean
right click on the project again > Run As > maven install 
and finally deploy the project on to the server. This helped me to solve the issue  
0
tadtab

для меня один случай, я просто пропустил проект обновления Maven, который вызвал ту же проблему

обновите проект maven и попробуйте, если вы видите какие-либо ошибки в POM.xml

0
Mahender Reddy Yasa

Как общее решение, я рекомендую вам удалить все вторичные зависимости и запустить приложение, если оно сработало, отменить некоторые назад и продолжить делать то же самое до тех пор, пока приложение запускается, в конце вы сможете определить, какие зависимость вызвала проблему.

Например, таким же образом я обнаружил, что проблема связана с зависимостями, у которых groupId: org.Apache.axis2.

 <dependency>
        <groupId>org.Apache.axis2</groupId>
        <artifactId>axis2-transport-local</artifactId>
        <version>1.6.1</version>
 </dependency>
 <dependency>
        <groupId>org.Apache.axis2</groupId>
        <artifactId>axis2-transport-http</artifactId>
        <version>1.6.1</version>
 </dependency>
0
Yazid Erman

Эта же проблема возникла для меня и трассировки стека 

SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/XXXXSearch]]
    at Java.util.concurrent.FutureTask.report(FutureTask.Java:122)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:192)
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1123)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:800)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1559)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1549)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/XXXXSearch]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    ... 6 more
Caused by: Java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/XXXXSearch]. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.Java:2109)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.Java:1981)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.Java:1947)
    at org.Apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.Java:1932)
    at org.Apache.catalina.startup.ContextConfig.webConfig(ContextConfig.Java:1326)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:878)
    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:5179)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 6 more
Caused by: Java.lang.StackOverflowError
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)
    at org.Apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.Java:2269)

В моем анализе я обнаружил, что эта проблема возникает, когда неправильная циклическая зависимость наследования вызывается при обработке аннотации запуска Tomcat.

Но в моем проекте было много зависимых JAR-файлов, и я не смог найти, кто за это отвечает.

После многих неудачных попыток я обновил свой плагин Tomcat до следующего и запустил тот же сценарий:

<plugin>
    <groupId>org.Apache.Tomcat.maven</groupId>
    <artifactId>Tomcat8-maven-plugin</artifactId>
    <version>3.0-r1756463</version>
<\plugin>

Тогда я смог найти, какой JAR вызван этой проблемой,

Aug 23, 2017 2:32:12 PM org.Apache.catalina.startup.ContextConfig processAnnotationsJar
SEVERE: Unable to process Jar entry [cryptix/test/TestLOKI91.class] from Jar [jar:file:/C:/Users/Tharinda/.m2/repository/cryptix/cryptix/1.2.2/cryptix-1.2.2.jar!/] for annotations
Java.io.EOFException
    at org.Apache.Tomcat.util.bcel.classfile.FastDataInputStream.readUnsignedShort(FastDataInputStream.Java:120)
    at org.Apache.Tomcat.util.bcel.classfile.ClassParser.readAttributes(ClassParser.Java:110)
    at org.Apache.Tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.Java:94)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.Java:1994)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.Java:1944)
    at org.Apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.Java:1919)
    at org.Apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.Java:1880)
    at org.Apache.catalina.startup.ContextConfig.webConfig(ContextConfig.Java:1149)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:771)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:305)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:117)
    at org.Apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.Java:90)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5120)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1408)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1398)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)

Тогда просто решение проблемы с cryptix-1.2.2.jar решило эту проблему.

Я настоятельно рекомендую переместить Tomcat8-maven-plugin , который кажется стабильным и менее глючным в данный момент.

0
Tharinda_tpw

Не паникуйте Вы скопировали код сервлета? В порядке,

@WebServlet("/HelloWord")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;

Вы дали один и тот же путь @WebServlet("/HelloWord") для обоих сервлетов с разными именами.

Если вы создаете файл web.xml, то проверьте classpath.

0
Milind

Похоже, что используемая вами версия API сервлетов старше, чем xsd, который вы используете в web.xml, например 3.0

используйте этот **** http: //Java.Sun.com/xml/ns/javaee/ "id =" WebApp_ID "version =" 2.5 "> ****

0
arjun kumar mehta