web-dev-qa-db-ja.com

Java.util.concurrent.ExecutionExceptionの起動中に子コンテナが失敗しました

基本的なJSPを作成/実行しようとすると、次のエラーが発生しました。他の人々も同様の問題を抱えていることがわかりましたが、手元にある問題の解決策を見つけることができませんでした。助けていただければ幸いです!

    SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SimpleServletProject]]
    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:816)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1575)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1565)
    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[Catalina].StandardHost[localhost].StandardContext[/SimpleServletProject]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    ... 6 more
Caused by: Java.lang.NoClassDefFoundError: HttpServletRequest
    at Java.lang.Class.getDeclaredMethods0(Native Method)
    at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2693)
    at Java.lang.Class.getDeclaredMethods(Class.Java:1967)
    at org.Apache.catalina.util.Introspection.getDeclaredMethods(Introspection.Java:127)
    at org.Apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.Java:287)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.Java:140)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:65)
    at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:415)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:892)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:386)
    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:5380)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 6 more
Caused by: Java.lang.ClassNotFoundException: HttpServletRequest
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1720)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1571)
    ... 20 more

Jan 22, 2015 9:04:06 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]]
    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.StandardEngine.startInternal(StandardEngine.Java:300)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:443)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:739)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:689)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:483)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:321)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:455)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1575)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1565)
    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: A child container failed during start
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1131)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:816)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 6 more

Jan 22, 2015 9:04:06 PM org.Apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.Apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:689)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:483)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:321)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:455)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:739)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:443)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 9 more
Caused by: org.Apache.catalina.LifecycleException: A child container failed during start
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1131)
    at org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:300)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 11 more

Jan 22, 2015 9:04:06 PM org.Apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Jan 22, 2015 9:04:06 PM org.Apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Jan 22, 2015 9:04:06 PM org.Apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Jan 22, 2015 9:04:06 PM org.Apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Jan 22, 2015 9:04:06 PM org.Apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
23
zzz2991

ここで同様の問題が見つかると思います:

Java.lang.ClassNotFoundException:HttpServletRequest

そしておそらく答えます。お役に立てれば。

20
Naman

Warファイルの他のライブラリとともにservlet-api.jarをパッケージ化しておく必要があります。これを確認するには、warファイルを開き、WEB-INF/libフォルダーに移動します。

理想的には、servlet-api jarを提供しないでください。コンテナ(Tomcatの場合)は、デプロイ時にアプリケーションに提供する役割を果たします。同様に提供しようとすると、バージョンの不一致などが原因で問題が発生します。ベストプラクティスは、パッケージ化を避けることです。 WEB-INF/libから削除します。

追加情報

パッケージ化にmavenを使用している場合は、providedタグを依存関係に追加するだけで、mavenは最終warファイルにパッケージ化しないようにします。何かのようなもの

<dependency>
    <artifact>..
    <group> ...
    <version> ...
    <scope>provided</scope>
</<dependency>
8
Saif Asif

同様の問題に直面しましたが、これは、WebServlet Pathを.Javaファイルとweb.xmlに記述したために発生しました。任意の場所からそれを削除すると、私にとってはうまくいきます。

.Javaファイル内

@WebServlet("/index1.jsp")

およびweb.xml内

<servlet>
    <servlet-name>Logout</servlet-name>
    <servlet-class>tpc.Logout</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Logout</servlet-name>
    <url-pattern>/index1.jsp</url-pattern>
</servlet-mapping>
4
Shubham Gupta

Webアプリケーションの/ WEB-INF/libにservlet-api.jarファイルのようなservletcontainer固有のライブラリがあります。これは正しくない。

それらをすべて削除します。

/ WEB-INF/libには、サーブレットコンテナではなく、webappに固有のライブラリのみを含める必要があります。 servletcontainer(Tomcatなど)は、servletcontainer固有のライブラリをすでに提供しているはずです。

異なるmake/versionの任意のservletcontainerからライブラリを提供する場合、webappはそれらのライブラリの元の場所とは異なるmake/versionのservletcontainerで実行できないため、この種の問題が発生します。 。

解決方法: EclipseでEclipseプロパティでプロジェクトを右クリック-> Java Build Path-> Add library-> Server Runtime Library-> Apache Tomcat

Im Mavenプロジェクト:-

pom.xmlファイルに次の行を追加します

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${default.javax.servlet.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>${default.javax.servlet.jsp.version}</version>
            <scope>provided</scope>
        </dependency>
4
Mahender Yadav

Servers(またはserver.xmlを含むServers1、Servers2)という名前のプロジェクトを削除し、Package Explorer(workspace)で見つけます。

Eclipseからサーバーを削除: Window> Preferences> Server> Runtime Environmentに移動し、ここでEclipseから使用しているサーバーを削除して再度追加します(これによりEclipseに新しいサーバープロジェクトフォルダーが作成されます)、

プロジェクトからサーバーを削除:プロジェクト内のサーバーも削除し(ビルドパス>構成パス> Javaビルドパス)、再度追加します。

server.xmlにマルチコンテキストを持たない新しいサーバープロジェクトがあり、server.xmlの重複パスを削除するだけでexixtingの問題は解決しましたが、サーバーが起動しました(Apache Tomcat v7)と正常に動作しました

そして、これが良い習慣であるかどうかわからない、私はプログラミングの初心者です。

3
Jov

私はhttpサーブレットを試してみて、重複した@ WebServletを書くときにこの問題を見つけました、この問題に遭遇しました。削除または変更した後@ WebServlet動作している値。

1。クラス

@WebServlet("/display")
public class MyFirst extends HttpServlet {

2。クラス

@WebServlet("/display")
public class MySecond extends HttpServlet {
2
java.nazif

java_HOMEが1.7以下に設定されているかどうかを確認してください。 Tomcat 7はjdk 1.8と互換性がないため

これは私のために働いた

1
Raj Shekar

これは私のために働いたものです:

1)commons-logging.jarをWEB-INF/libフォルダーに追加します

2)このjarをMaven依存関係として追加します。これをpom.xmlに追加します。

 <dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
 </dependency>

3)Mavenインストール

4)サーバーを実行します。

それが役に立てば幸い。

1
João Matos
  1. ダウンロードcommons-logging-1.1.1.jar
  2. プロジェクト、ビルドパス、ビルドパスの構成、Javaビルドパスに移動します。
  3. 外部jarを追加.. commons-logging-1.1.1.jarを追加
  4. 適用をクリックして、OK
  5. プロジェクト、プロパティ、デプロイメントアセンブリに移動し、[追加]、[Javaビルドパスエントリ]の順にクリックし、次にcommons logging jar、ok , apply、ok。を選択します。
  6. サーバーを削除し、ur proejctを削除し、サーバーを追加して、プロジェクトを実行します。
0
In Dra_ 0509

互換性のないJavaバージョンとTomcatバージョンが原因でこの問題が発生する場合があります。両方の互換バージョンを選択してください。

0
anand mishra

同様のログで同様の問題に直面しました。 Apache Tomcat 7でJDK 1.6を使用していました。Java_homeを1.7に設定すると、問題が解決しました。

0
jetty

同じ問題に直面した。 JREを正しい1.8バージョンに変更し、Mavenのクリーンアップとビルドを実行して問題を解決しました。プロジェクトファセットを変更し、正しいパスを確認する必要がある場合があります。

0
Arindam

この問題は、Mavenリポジトリーの破損が原因の場合もあります。

Eclipseを使用しているときに、SEVERE: A child container failed during startメッセージを時々確認します。私のEclipseワークスペースにはいくつかのプロジェクトがあります。一部のプロジェクトには、共通の外部依存関係があります。 Mavenリポジトリが空の場合(または新しい依存関係をpom.xmlファイルに追加した場合)、Eclipseはpom.xmlで指定されたライブラリのMavenリポジトリへのダウンロードを開始します。そして、Eclipseはそれを行います並行してワークスペースのいくつかのプロジェクトに対して。複数のEclipseスレッドが同じファイルをMavenリポジトリの同じ場所に同時にダウンロードしている可能性があります。その結果、このファイルは破損します。

したがって、これが問題の解決方法です。

  1. Eclipseを閉じます。
  2. Mavenリポジトリで破損している特定のjarファイルがわかっている場合は、そのファイルを削除します。
  3. Mavenリポジトリで壊れているファイルがわからない場合は、リポジトリ全体を削除します(rm -rf $HOME/.m2)。
  4. 各プロジェクトについて、コマンドラインでmvn packageを実行します。各プロジェクトでコマンドを実行することが重要ですone-by-one、並列ではありません。したがって、毎回Mavenのインスタンスが1つだけ実行されるようにします。
  5. Eclipseを開きます。
0

私のプロジェクトでも同様の問題が見られました。クラス定義が欠落しているjarをTomcatのlibディレクトリに貼り付けると、問題が解決しました。

0
randeepsp

AWS依存関係を追加し、このエラーが発生しました。 POMから削除すると、エラーはなくなります。おそらく同じ状況になるかもしれません。

0
tadtab