ошибка Tomcat в спящем режиме eclipse

Я получаю эту ошибку при попытке запустить веб-приложение на tomcat в eclipse:

SEVERE: назначить исключение для сервлета Kartoteka java.lang.ClassNotFoundException: org.hibernate.criterion.Criterion в org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1680) в org.aploader.catalina. loadClass (WebappClassLoader.java:1526) в java.lang.Class.getDeclaredConstructors0 (собственный метод) в java.lang.Class.privateGetDeclaredConstructors (Неизвестный источник) в java.lang.Class.getConstructor0 (Неизвестный источник) в java.lang.Class .newInstance0 (Неизвестный источник) в java.lang.Class.newInstance (Неизвестный источник) в org.apache.catalina.core.StandardWrapper.loadServlet (StandardWrapper.java:1149) в org.apache.catalina.core.StandardWrapper.allocate ( StandardWrapper.java:827) на org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:129) на org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) на org.ap .основной. StandardHostValve.invoke (StandardHostValve.java:127) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.invoke (StandardEngineValve.invoke) (StandardEngineValve.invoke (Standard) orEngineValve.invoke (Standard) .apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293) в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:861) в org.apache.coyote.http11.Http11.Concess Http11. (Http11Protocol.java:606) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) в java.lang.Thread.run (неизвестный источник)

Кажется, что нет конкретной библиотеки, но я не знаю, какая именно. Я использую последнюю версию гибернации (4.1.8 final). Я пытался скомпоновать все библиотеки из hiberante, но это не помогает. Какие-либо предложения?


person adaniluk    schedule 08.12.2012    source источник


Ответы (1)


Файлы JAR с зависимостями времени выполнения webapp должны находиться в папке /WEB-INF/lib. Исключение, с которым вы столкнулись, предполагает, что это не так. Итак, чтобы исправить все это, вам просто нужно убедиться, что файл (ы) JAR помещен в нужное место.

Распространенная ошибка новичков заключается в том, что они возятся со свойством Build Path проекта, чтобы добавить зависимости времени выполнения. Это неправильно. Он только добавляет зависимости от времени компиляции. Вам нужно отменить все изменения, которые вы сделали там, чтобы решить эту проблему, иначе они все равно могут конфликтовать.

person BalusC    schedule 10.12.2012
comment
Я добавил внешние jar-файлы в build-path, не понимая, что это плохая практика. поэтому переместил их из build-path в / WEB-INF / lib, когда я получил исключение времени выполнения с жалобой на не найденный класс. Однако теперь каждый раз, когда я запускаю свой проект, я получаю исключение, указывающее на исключение другого класса, не найденного, даже если оно было загружено через Maven и находится в папке зависимостей Maven. Как будто проект теперь просматривает файлы jar только в / WEB-INF / lib и просто игнорирует папку зависимостей Maven? Есть идеи, почему это может быть? - person smoggers; 10.06.2015
comment
@smoggers: если вы строите с использованием Maven вместо обычного Eclipse, тогда он позаботится о заполнении /WEB-INF/lib желаемыми зависимостями во время сборки (и он будет использовать зависимости с предоставленной областью видимости только во время компиляции). Другими словами, вам не следует вручную размещать JAR-файлы в /WEB-INF/lib, а объявлять их в pom-файле с правильной областью видимости. - person BalusC; 10.06.2015