Подтвердить что ты не робот

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

Как устранить ошибку. Я просмотрел некоторые подобные сообщения, но не нашел его полезным.

4b9b3361

Ответ 1

В вашем веб-приложении есть специальные библиотеки servlet-api.jar такие как файл servlet-api.jar в /WEB-INF/lib. Это не правильно. Убери их всех. /WEB-INF/lib должен содержать только библиотеки, относящиеся к веб-приложению, а не к контейнеру сервлета. Контейнер сервлетов (например, Tomcat) - это тот, кто уже должен предоставлять специальные библиотеки контейнеров сервлетов. Если вы предоставляете библиотеки из произвольного контейнера сервлета другой сборки/версии, вы столкнетесь с проблемами такого рода, поскольку ваше веб-приложение не сможет работать на контейнере сервлета другой сборки/версии, чем эти библиотеки. возник из.

Это довольно распространенная ошибка для начинающих, когда они сталкиваются с ошибками во время компиляции, поскольку они неправильно настроили свой проект IDE. См. Также Как импортировать API javax.servlet в мой проект Eclipse?

Ответ 2

Caused by: java.lang.NoClassDefFoundError: HttpServletRequest

Проблема может быть javax библиотека javax не найдена.

Я решил ту же проблему с:
Щелкните правой кнопкой мыши проект в Eclipse → PropertiesJava Build PathLibrariesAdd library...Server RuntimeApache Tomcat

Ответ 3

У меня не было сервлета-api.jar в каталоге WEB-INF/lib приложения (или в любом другом банке). Проблема в том, что в 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>
    ...

... согласно учебнику. Удаление, которое все еще позволяло сервлету функционировать, и не получил ошибку.

Ответ 4

добавьте следующее в свой pom.xml.it для меня.

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

Ответ 5

У меня такая же проблема, когда я пытался с помощью первого Spring MVC webapp. То, что я сделал, было загружено jar файлами, указанными по ссылке (Загрузить Spring). Среди флагов в папке, извлеченной из ZIP, файлы 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

Но когда я получаю сообщение об ошибке, глядя на решение, я понял, что мне также нужна следующая банка.

  • Обще-каротаж 1.0.4.jar

  • JSTL-1.2.jar

Затем я искал и загружал два файла jar отдельно и включал их в папку /WEB-INF/lib. И, наконец, я смог запустить мой webapp с помощью сервера Tomcat.:)

Ответ 6

вы должны добавить файл servler-api.jar в папку WEB-INF/lib

Ответ 7

Я только что удалил объявление сервлета в файле web.xml, и он работает для меня.

Удачи.

Ответ 8

Спасибо, ребята. Все вышеперечисленное не удалось, за исключением того, что удалил все содержимое из файла C:\Users\debasish\workspace\.metadata\.plugins\org.eclipse.wst.server.core, а затем снова создало сервер.

Но сначала удалите сервер, прежде чем удалять содержимое этого файла.

Ответ 9

Этот файл предназначен для всех пользователей Maven, используя их зависимости для пути к классам и не копируя их в /WEB -INF/lib: просто добавьте это (которое копирует библиотеки зависимостей) до </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>

Ответ 10

У меня была та же проблема, и причиной было отсутствие commons-logging-1.2.jar

Я добавляю его в папку lib, тогда мой сервер Apache Tomcat 7 выполняется без проблем.

Ответ 11

Ту же ошибку я получил

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

Я удалил проект из рабочего пространства затмения, удалил папку .settings проекта и снова импортировал в затмение. Сделал трюк для меня.

Ответ 12

1 Щелкните правой кнопкой мыши "ваш проект" в Eclipse EE Project Explorer. 2 Нажмите "Свойства". 3 Установите флажок "Целевые среды выполнения". 4 Флажок версии, с которой вы в данный момент работаете.

Это должно сделать свое дело.

Ответ 13

Таким образом, проблема связана с ошибками метаданных elcipse. Перейдите в папку метаданных, где сохраняется эта конфигурация. Для меня одним из эррров было то, что:

SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base C:\Users\Cannibal\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\FoodQuantityService does not exist or is not a readable directory

Итак, в рабочей области вашего затмения все по-другому и удаляет все содержимое. Мои службы были названы FoodQuantityService, поэтому я удалил все файлы в org.eclipse.wst.server.core, но перед этим удалите конфигурацию своего сервера из Eclipse

Delete current server configuration

Затем создайте новую конфигурацию File- > New- > Другие- > Сервер выберите Tomcat, а затем проекты, которые вы хотите опубликовать. Запустите сервер, и все будет в порядке.

Ответ 14

Если какой-либо проект, который вы использовали и который теперь закрыт в рабочей области, может привести к этой проблеме, попробуйте удалить контекст из папки сервера внутри eclipse или откройте проекты.

Ответ 15

Я столкнулся с той же проблемой при использовании eclipse-jee. Я нашел причину этой проблемы в том, что у меня было два или более дублирующих определения @WebServlet ( "/yourServlet" ) в моем веб-приложении, поэтому решение заключается в устранении дубликатов

Ответ 16

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

javax.servlet.annotation.*