web-dev-qa-db-ja.com

Tomcat 7「重大:開始時に子コンテナーが失敗しました」

基本的に、私は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.springframework.beans.factory.support.DefaultListableBeanFactory@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.springframework.beans.factory.support.DefaultListableBeanFactory@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.springframework.beans.factory.support.DefaultListableBeanFactory@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>

誰にもアイデアはありますか?

38
david99world

サーブレット3.0アプリケーションが起動すると、コンテナはすべてのクラスのアノテーションをスキャンする必要があります(metadata-complete = trueの場合を除く)。 Tomcatは、Apache Commons BCELのフォーク(追加なし、未使用コードのみ削除)を使用してこのスキャンを実行します。 BCELが理解できない何かに遭遇したため、Webアプリの起動に失敗しています。

Tomcat 6でアプリケーションが正常に実行される場合、web.xmlにmetadata-complete = "true"を追加するか、web.xmlでアプリケーションを2.5アプリケーションとして宣言すると、注釈のスキャンが停止します。

現時点では、これはスキャンされているクラスの問題のように見えます。ただし、どのクラスが問題の原因であるかがわかり、詳しく調べるまでわかりません。問題のクラスに名前を付けるより有用なエラーメッセージを記録するようにTomcatを変更する必要があります。この時点での進捗状況は次の場所で確認できます。 https://issues.Apache.org/bugzilla/show_bug.cgi?id=53161

31
Mark Thomas

あなたはそれを修正することができます:

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

提供はこの問題を解決します

23
Max Sassen

最近、すべてのEclipseプロジェクトを新しいPCに移しました。この問題が発生しました。私がしたことは:

  1. tomcatからプロジェクトを削除しました
  2. クリーンなTomcat
  3. tomcatでプロジェクトを実行する
12
arn-arn

以前は適切に実行されていたと考えている場合は、特定の問題が表示されるようになりました。それは解決するためのただのヒットとトライアルの方法です。より良い解決策を得るには、以下の手順に従うことができます

  1. 可能であれば、既存のTomcatを削除します
  2. プロジェクトを削除し、新しいビルドでプロジェクトを追加します
  3. tomcatサーバーを追加します
  4. プロジェクトをクリーンアップし、プロジェクトを更新します
  5. 実行モードまたはデバッグモードに進む
4
Ram

これは通常、web.xml記述子ファイルの問題です。アノテーションとweb.xmlサーブレット記述定義を混同している可能性があります。詳細については、コンソールを確認してください。

2
Guru

パニックにならないでください。サーブレットコードをコピーしましたか? OK、

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

異なる名前の両方のサーブレットに同じパス@WebServlet("/HelloWord")を指定しました。

web.xmlファイルを作成する場合は、classpathを確認してください。

1
Liger

これは、使用しているサーブレットAPIバージョンが、web.xmlで使用しているxsd(たとえば3.0)より古いようです

これを使用してください**** http://Java.Sun.com/xml/ns/javaee/ "id =" WebApp_ID "version =" 2.5 "> ****

1

「Tomcatに問題はありません」。

この問題を解決するのに4〜5日かかりました(上記の同じ問題)。ここでは、Tomcat 8.5を使用していました。最後に、問題は解決されました。問題は「破損したjarファイル」にありました。すべての.m2リポジトリ(私にとってはC:\ Users\Bandham.m2\repository)を削除する必要があります。 denは、プロジェクトフォルダーから「mvn clean install」コマンドを実行します。

幸せなコーディング。

問題が解決した場合は、1つを与えます。

1

セクションDeployment Descriptor:MyProyect / Servlet Mappings内に存在しないマッピングがあるため、Tomcat Serverは起動に失敗し、例外をスローします。それらの要素を削除または修正します。サーバーを起動すると問題なく動作します。

0
Gabriel

私は同様の問題に直面しましたが、エンコードの問題のようにエラーを慰めます。 IDEエンコーディングを変更した後、正常に動作します。 Eclipse IDE

0
Mathan_kumar

私は数ヶ月前に同じ問題を抱えています。これにより、ダウンロードされたバージョンのSpringの代わりにMavenを使用し、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>

そして、ソリューションの最も重要な部分には、web.xmlにサーブレットディスパッチャー(A.K.A. spring-servlet.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>

これを解決しようとすると、奇妙なことが起こります。 maven.springframework.org/release/org/springframework/spring からダウンロードしたSpringのバージョンには、多くの問題があります(Tomcatはサーブレットを見つけられませんでした。SpringはTomcatを停止し、Eclipseはサーバー{奇妙})ので、多くの問題で多くの部分的な解決策を見つけます。これがお役に立てば幸いです。

追加のヘルプとして、Eclipseでは、Eclipse MarketplaceからSpring STS Tool for Eclipseをダウンロードします。これにより、構成ファイル(servlet.xml)を作成し、web.xmlファイルにサーブレットのコードを記述できます。

0
Juan Torres

私は同じ問題を抱えていますが、私の場合は間違ってserver.xml($ Tomcat_Install_Dir/conf /)にコンテキストを追加し、対応する戦争をwebapps($ Tomcat_Install_Dir/webapps )。そのコンテキストを削除してTomcatを再起動すると、正常に機能しました。

0
Shiv

これは私が長い間直面してきたことです。

これは前回発生し、1つのケースが悪い戦争展開である可能性があることがわかりました。これは、pomでライブラリ/ maven依存関係を更新して再インストールした後に発生しました。

解決:

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

私にとって1つのケースは、同じ問題を引き起こしたプロジェクトを更新するのを逃しただけだった

maven更新プロジェクト。POM.xmlにエラーがある場合は試してください

0

一般的な解決策として、すべての二次依存関係を削除し、アプリケーションを実行することをお勧めします。それが機能する場合は、一部を元に戻して、アプリケーションが起動する限り同じことを続けます。依存関係が問題を引き起こしました。

たとえば、同じ方法を使用して、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があり、どの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