web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:HttpServletRequest

Tomcat 7.0.27を入手しました。 Tomcatを45秒起動する時間を確保しました。また、Tomcatの古いバージョンでも問題なく動作していました。しかし、それを実行すると次のエラーが発生します:

SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/VotingApp]]
    at Java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.Java:222)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:83)
    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:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:680)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/VotingApp]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    ... 7 more
Caused by: Java.lang.NoClassDefFoundError: HttpServletRequest
    at Java.lang.Class.getDeclaredMethods0(Native Method)
    at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2427)
    at Java.lang.Class.getDeclaredMethods(Class.Java:1791)
    at org.Apache.catalina.startup.WebAnnotationSet.getDeclaredMethods(WebAnnotationSet.Java:470)
    at org.Apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.Java:275)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.Java:137)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:66)
    at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:381)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:858)
    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
Caused by: Java.lang.ClassNotFoundException: HttpServletRequest
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1711)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1556)
    ... 21 more
May 11, 2012 10:09:21 AM 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$Sync.innerGet(FutureTask.Java:222)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:83)
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1128)
    at org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:302)
    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:732)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:675)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
    at Java.lang.reflect.Method.invoke(Method.Java:597)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:322)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:450)
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:1566)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1556)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:680)
Caused by: org.Apache.catalina.LifecycleException: A child container failed during start
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1136)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:782)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more
May 11, 2012 10:09:21 AM org.Apache.catalina.startup.Catalina start
SEVERE: Catalina.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:675)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
    at Java.lang.reflect.Method.invoke(Method.Java:597)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:322)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:450)
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:732)
    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:1136)
    at org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:302)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 11 more
May 11, 2012 10:09:21 AM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 561 ms

エラーを解決するにはどうすればよいですか。私はいくつかの同様の投稿を調べましたが、有用ではありませんでした。

29
Hozefa

Webアプリのservlet-api.jarには、/WEB-INF/libファイルなどのサーブレットコンテナ固有のライブラリがあります。これはnot右です。それらをすべて削除します。 /WEB-INF/libには、サーブレットコンテナではなく、Webアプリ固有のライブラリのみを含める必要があります。サーブレットコンテナ(Tomcatなど)は、サーブレットコンテナ固有のライブラリを既に提供しているはずです。異なるmake/versionの任意のサーブレットコンテナからライブラリを提供すると、この種の問題が発生します。Webアプリケーションは、それらのライブラリとは異なるmake/versionのサーブレットコンテナで実行できないためです。から発展する。

IDEプロジェクトの権利。 Howdo I Eclipseプロジェクトにjavax.servlet APIをインポートしますか?

45
BalusC

Caused by: Java.lang.NoClassDefFoundError: HttpServletRequest

上記の問題は、javaxライブラリーが見つからないことが原因である可能性があります。

私は同じ問題を解決しました:
Eclipseでプロジェクトを右クリック→PropertiesJava Build PathLibrariesAdd library...Server RuntimeApache Tomcat

17
nikhil sharma

アプリケーションのWEB-INF/libディレクトリ(または他のjar)にservlet-api.jarがありませんでした。問題は、WEB-INF/web.xmlにこれがあったことです...

    ...
    <servlet>
      <servlet-name>MyServlet</servlet-name>
      <servlet-class>com.bizooka.net.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>MyServlet</servlet-name>
      <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
    ...

...チュートリアルによる。これを削除しても、サーブレットは機能し、エラーは発生しませんでした。

3
user3567174

あなたのpom.xmlに以下を追加してください。

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

最初のSpring MVC webappで試していたとき、私は同じ問題を抱えています。私がやったことは、リンクから与えられたjarファイルをダウンロードしました (Spring Frameworkのダウンロード) Zip解凍されたフォルダーのjarファイルのうち、使用することが期待されていたjarファイルは

  • org.springframework.asm-3.0.1.RELEASE-A.jar

  • org.springframework.beans-3.0.1.RELEASE-A.jar

  • org.springframework.context-3.0.1.RELEASE-A.jar

  • org.springframework.core-3.0.1.RELEASE-A.jar

  • org.springframework.expression-3.0.1.RELEASE-A.jar

  • org.springframework.web.servlet-3.0.1.RELEASE-A.jar

  • org.springframework.web-3.0.1.RELEASE-A.jar

しかし、解決策を探してエラーを取得すると、次のjarファイルも必要であることがわかりました。

  • commons-logging-1.0.4.jar

  • jstl-1.2.jar

次に、2つのjarファイルを個別に検索してダウンロードし、/ WEB-INF/libフォルダーに含めます。そしてついに、Tomcatサーバーを使用してwebappを実行することができました。 :)

0
Niraj

みんなありがとう。上記のすべては、ファイルC:\Users\debasish\workspace\.metadata\.plugins\org.Eclipse.wst.server.coreその後、サーバーを再作成します。

ただし、これらのファイルの内容を削除する前に、まずサーバーを削除してください。

0
Debasish Ghosh

wEB-INF/libフォルダーにservlet-api.jarファイルを追加する必要があります

0
Deep Shah

Web.xmlファイル内のサーブレットの宣言を削除したところ、うまくいきました。

幸運を

0
Marquise Mery

私が得た同じエラー

Caused by: org.Apache.catalina.LifecycleException: A child container failed during start

Eclipseワークスペースからプロジェクトを削除し、プロジェクトの.settingsフォルダーを削除して、Eclipseに再インポートしました。私のためにトリックをしました。

0
Aslam anwer

これは、クラスパスの依存関係を使用し、それらを/ WEB-INF/libにコピーせずに、そこにいるすべてのMavenユーザー向けです:</plugin>の前にこれを追加するだけです

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <phase>process-sources</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>WebContent/WEB-INF/lib</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
0
Li3ro

私は同じ問題を抱えていましたが、原因は commons-logging-1.2.jar の欠落でした

libフォルダーに追加すると、Apache Tomcat 7サーバーは問題なく実行されました。

0
Yacino