2015-07-13 3 views
4

Я знаю, что это вопрос, который уже был задан много раз, но я попробовал почти все решения, которые я нашел, и он все еще не работает.Почему Eclipse не может найти javax.servlet.ServletContextListener?

Я работаю с:

  • Затмения Kepler
  • Java 7
  • Maven
  • Tomcat 6.0.37

Я пытаюсь запустить serverbut он терпит неудачу из-за:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.37 
Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Error configuring application listener of class org.springframework.web.util.Log4jConfigListener 
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 29 more 

Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 29 more 

Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener 
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletRequestListener 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 29 more 

В первый раз, когда я импортировал проект, запуск был успешным, и приложение было успешным. Но потом это не сработало, поэтому я создал новую рабочую область, и я импортировал проект второй раз в этой новой рабочей области, и именно там я получил эти ошибки.

То, что я уже пытался до сих пор:

  • использовать Tomcat установки вместо метаданных рабочей
  • ClassNotFoundException with ServletContextlistener
  • java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener error

  • много проекта/чистый, Maven/обновление проекта, Сервер/очистка

  • конфигурация сервера/открытого запуска -> Я добавил commons-logging-1.1.1.jar и spring-web-3.2.3.RELEASE.jar к классам под User entries
  • , когда я с использованием метаданных рабочей области, я также попытался скопировать и папку паста WEB-INF в .plugin папке метаданных
  • Я также проверил, если фляги в .m2 папке и, кажется, будет хорошо

Edit: @Gimby Моего приложение еще не развернуто, так что я не имею никакого военный файл. Но у меня есть Lib папку в WEB-INF: апач-кот-6.0.37 \ wtpwebapps \ msapp-Web \ WEB-INF \ Lib enter image description here

enter image description here

enter image description here

enter image description here

Эти библиотеки в Apache Tomcat на путь сборки: enter image description here

+1

Какие библиотеки находятся в WEB-INF/lib развернутого военного файла приложения? – Gimby

+1

Можете ли вы открыть тип 'ServletContextListener' изнутри Eclipse? Из какого файла jar он исходит? – nitind

ответ

1

Я предполагаю, что вы получаете эту ошибку, потому что пытаетесь запустить tomcat-сервер из Eclipse. Таким образом, проблема заключается в том, как Eclipse настраивает Classpath для WebApp.

В Eclipse перейдите в окно свойств объекта. Выбрать: Путь сборки Java> Библиотеки.

Выбрать: Серверное время выполнения> Apache Tomcat.

Это скажет Eclipse, что он должен учитывать, что кубы разработчиков Tomcat являются частью пути класса Tomcat.

+0

У меня есть Apache Tomcat v6.0 [Apache Tomcat v6.0] в моем пути сборки Java – josefk

+0

Я не вижу servlet-api.jar в прикрепленных к экранам экранах. Расширяется ли запись пути сборки (для Apache Tomcat), чтобы показать Jars в каталоге tomcat/lib? – Mecon

+0

Да, это в пути сборки Apache Tomcat, я только что редактировал сообщение и добавил скриншот. – josefk

0

Это то, что работает для меня:

Я сделал много чистого, обновления, даже удаление сервера и повторно добавить его. Я тоже: правой кнопкой мыши на проекте/Maven/Обновление проекта

То, что произошло это

java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener

исчез. В самом деле, у меня больше нет ошибок, но сервер начал так быстро, что очевидно, что ни одна из страниц не была загружена. Потому что я вижу журналы загрузки в консоли, когда страницы действительно загружены. Это было не так, и я получил

http status 404

После этого я несколько раз

right click on the server/Properties/Switch location

Я тогда был еще ошибки, связанные с подключением к базе данных:

java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleConnectionPoolDataSource

Поэтому я реализовало второе предложение от @Ranger

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver

, который состоит из добавления

ojdbc14.jar

к классам конфигурации запуска, под

User entries

А потом он работал ...

Я не знаю, если это является Maven или Eclipse или Tomcat, что является очень неустойчивым с обнаружением библиотек. В любом случае это сработало, спасибо всем!