wake-up-neo.com

Tomcat 7 "SEVERE: Ein untergeordneter Container ist beim Start fehlgeschlagen"

Grundsätzlich habe ich eine springMVC-Anwendung geschrieben (mit einer relativ neuen Flinte, die sich in Bezug auf Spring auf den ersten Blick bezieht). Das Projekt funktioniert gut auf Tomcat 6. Mein Tomcat-Server startet nicht und löst folgende Ausnahme aus: 

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

Ich bin wirklich nicht sicher, worauf es sich bezieht, ich bin mehr als glücklich, Code usw. zu zeigen, aber ich weiß nicht wirklich, worauf es sich bezieht. Unten ist meine pom.xml für den Fall, dass das relevant sein könnte. 

<?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>

Hat jemand irgendwelche Ideen? 

33
david99world

Wenn eine Servlet 3.0-Anwendung gestartet wird, muss der Container alle Klassen auf Annotationen prüfen (es sei denn, metadata-complete = true). Tomcat verwendet eine Abzweigung (keine Zusätze, nur nicht verwendeten Code wurde entfernt) von Apache Commons BCEL, um diese Prüfung durchzuführen. Die Web-App startet nicht, weil BCEL auf etwas gestoßen ist, das es nicht versteht.

Wenn die Anwendungen unter Tomcat 6 ordnungsgemäß ausgeführt werden, können Sie das Hinzufügen von metadata-complete = "true" in Ihre web.xml-Datei hinzufügen oder Ihre Anwendung als 2.5-Anwendung in web.xml deklarieren.

Im Moment sieht das nach einem Problem in der gescannten Klasse aus. Bevor wir jedoch wissen, welche Klasse das Problem verursacht, und einen genaueren Blick darauf werfen, werden wir es nicht erfahren. Ich muss Tomcat ändern, um eine nützlichere Fehlermeldung zu protokollieren, die die betreffende Klasse benennt. Sie können den Fortschritt zu diesem Punkt unter folgendem Link verfolgen: https://issues.Apache.org/bugzilla/show_bug.cgi?id=53161

28
Mark Thomas

sie können es beheben mit: 

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

vorausgesetzt löst dieses Problem

23
Max Sassen

Ich habe vor kurzem alle meine Eclipse-Projekte auf einen neuen PC umgezogen. Ich habe dieses Problem erlebt. Was ich gemacht habe war:

  1. das Projekt wurde von Tomcat entfernt
  2. sauberen Kater
  3. projekt in Tomcat ausführen
10
arn-arn

Wenn Sie der Meinung sind, dass es zuvor ordnungsgemäß ausgeführt wurde, zeigt es jetzt das jeweilige Problem. Dann ist es nur eine Erfolgsmethode, die gelöst werden muss. Um eine bessere Lösung zu erhalten, können Sie die folgenden Schritte befolgen

  1. entfernen Sie nach Möglichkeit Ihren vorhandenen Tomcat
  2. entfernen Sie Ihr Projekt und fügen Sie Ihr Projekt mit einem neuen Build hinzu
  3. fügen Sie Ihren Tomcat-Server hinzu
  4. reinigen Sie das Projekt und aktualisieren Sie das Projekt
  5. zum Laufen oder Debuggen gehen
3
Ram

Dies ist normalerweise das Problem mit der Deskriptordatei web.xml. Möglicherweise haben Sie die Definitionen der Annotationen und der Web.xml-Servlet-Beschreibungen gemischt. Bitte überprüfen Sie die Konsole für weitere Informationen.

2
Guru

"Es gibt kein Problem mit Tomcat".

Ich habe 4-5 Tage durchgemacht, um das Problem zu lösen (das gleiche Problem wurde oben erwähnt). hier verwendete ich Tomcat 8.5. Schließlich wurde das Problem behoben, das Problem war mit den "beschädigten JAR-Dateien". Sie müssen alle .m2-Repositorys löschen (für mich C:\Users\Bandham.m2\repository). Führen Sie den Befehl "mvn clean install" aus Ihrem Projektordner aus. 

glückliche Kodierung.

Gib ein UP, wenn dein Problem gelöst ist.

1

Der Tomcat-Server kann nicht gestartet werden und löst die Ausnahme aus, da im Abschnitt Deployment Descriptor:MyProyect / Servlet Mappings Zuordnungen vorhanden sind, die nicht vorhanden sind. Löschen oder korrigieren Sie diese Elemente. Das Starten des Servers funktioniert dann problemlos.

0
Gabriel

Ich habe ein ähnliches Problem, aber es tröstet den Fehler wie ein Codierungsproblem. Nach dem Ändern der IDE Codierung funktioniert es einwandfrei. Eclipse IDE

0
Mathan_kumar

Ich habe vor einigen Monaten das gleiche Problem. Dies behebt mein Problem mit Maven anstelle einer heruntergeladenen Version von Spring und einigen Änderungen in der 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.");
    }

}

spring-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>

Der wichtigste Teil der Lösung ist der Pfad des Servlet-Dispatchers (A.K.A. spring-servlet.xml) in der 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>

Etwas Seltsames passiert, wenn ich versuche, dieses Problem zu lösen. Jede heruntergeladene Version von Spring von maven.springframework.org/release/org/springframework/spring gibt mir eine Menge Probleme (Tomcat konnte kein Servlet finden, Spring stoppt Tomcat, Eclipse konnte den Server nicht starten }) also bei vielen Problemen viele Teillösungen finden. Ich hoffe das funktioniert für dich.

Als zusätzliche Hilfe können Sie in Eclipse das Spring STS-Tool für Eclipse vom Eclipse Marketplace herunterladen. Dadurch können Sie Konfigurationsdateien (servlet.xml) erstellen und Code für das Servlet in die Datei web.xml schreiben.

0
Juan Torres

Ich habe das gleiche Problem, aber in meinem Fall habe ich versehentlich einen Kontext in server.xml ($ Tomcat_Install_Dir/conf /) hinzugefügt und Corresponing War nicht in webapps ($ Tomcat_Install_Dir/webapps) implementiert. Als ich diesen Kontext entfernte und Tomcat neu startete, funktionierte es einwandfrei.

0
Shiv

Dies ist, was ich seit langer Zeit konfrontiert bin. 

Dies geschah beim letzten Mal und stellte fest, dass ein Fall eine Implementierung des schlechten Krieges sein konnte, nachdem ich die Bibliotheken/Maven-Abhängigkeiten von pom aktualisiert und erneut installiert hatte.

LÖSUNG: 

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

für mich war es ein Fall, dass ich gerade das Projekt maven verpasst hatte, das zu demselben Problem führte

aktualisieren Sie das Projekt und versuchen Sie, wenn Sie Fehler in POM.xml sehen

0

Als generische Lösung empfehle ich Ihnen, alle sekundären Abhängigkeiten zu entfernen und die Anwendung auszuführen. Wenn dies funktioniert hat, stellen Sie einige wieder her und setzen Sie das gleiche fort, solange die Anwendung gestartet wird. Am Ende können Sie feststellen, welche Abhängigkeit verursacht das Problem.

Auf dieselbe Weise habe ich zum Beispiel festgestellt, dass Abhängigkeiten, deren groupId: org.Apache.axis2 ist, das Problem verursacht haben.

 <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

Das gleiche Problem trat bei mir und beim Stack-Trace auf 

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)

In meiner Analyse wurde festgestellt, dass dieses Problem aufgetreten ist, als illegale Abhängigkeiten für die zyklische Vererbung für die Tomcat-Startanmerkungsverarbeitung verursacht wurden.

Aber mein Projekt hatte viele Abhängigkeits-JARs und konnte nicht herausfinden, welcher davon dafür verantwortlich ist.

Nachdem ich so viele unglückliche Ansätze ausprobiert hatte, habe ich mein Tomcat-Plugin folgendermaßen aktualisiert und dasselbe Szenario ausgeführt.

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

Dann konnte ich herausfinden, welcher JAR für dieses Problem verantwortlich ist.

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)

Wenn Sie das Problem mit cryptix-1.2.2.jar lösen, wurde dieses Problem gelöst.

Ich empfehle dringend, Tomcat8-maven-plugin zu verschieben, was im Moment stabil und weniger fehlerhaft erscheint.

0
Tharinda_tpw

Keine Panik Sie haben den Servlet-Code kopiert? OK,

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

Sie haben denselben Pfad @WebServlet("/HelloWord") für beide Servlets mit unterschiedlichen Namen angegeben.

Wenn Sie eine web.xml-Datei erstellen, überprüfen Sie die classpath.

0
Milind

Anscheinend ist die Servlet-API-Version, die Sie verwenden, älter als die von Ihnen verwendete XSD-Datei in web.xml, z. B. 3.0

verwenden Sie diese **** http: //Java.Sun.com/xml/ns/javaee/ "id =" WebApp_ID "version =" 2.5 "> ****

0