Spring не может найти библиотеку и веб-приложение не запускается в Tomcat 6 - PullRequest
0 голосов
/ 16 января 2011

У меня проблема с использованием STS: я создаю простое приложение Spring, просто чтобы опробовать такие функции, как MVC и постоянство.Теперь я создал кое-что очень простое из множества учебников для Spring 3, которые я использую.С приложением происходит сбой, при запуске сервера:

Код:

org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping # 0 ': инициализация компонента не выполнена;Вложенное исключение - org.springframework.beans.factory.CannotLoadBeanClassException: не удается найти класс [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean] для бина с именем «mySessionFactory», определенного в ресурсе ServletConnect / INFS-файла / myv /.сервлет-context.xml];вложенным исключением является java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

, но у меня есть org.springframework.orm в папке web-inf/classes (я даже пытался поместить ее в web-inf/lib).Когда я скопировал эти библиотеки, они появились в папке «Библиотеки веб-приложений».Сборка этого проекта в STS работает нормально, так как эта зависимость установлена ​​в пути сборки через свойства проекта, но как мне перенести библиотеки в веб-приложение?(Я использую Tomcat 6, так как это сервер, который я собираюсь использовать в будущем для производства).Это проблема конфигурации моего XML?Или я просто упускаю правильный способ поставить эту библиотеку?(Я сталкивался с той же проблемой и раньше, но добавление необходимой библиотеки в классах помогло).Более того, если я в своей рабочей области перехожу к папке, в которой должна находиться рабочая папка tomcat, я не могу найти ни одного рабочего каталога, ни какого-либо коммода

Ответы [ 3 ]

2 голосов
/ 19 января 2011

Перейдите в представление Servers и дважды щелкните по Tomcat Server, чтобы открыть страницу обзора Tomcat.Это покажет вам путь к серверу и путь развертывания, который Eclipse использует для публикации ваших веб-приложений.

Например, у меня:

Путь к серверу : .metadata\.plugins\org.eclipse.wst.server.core\tmp0 Путь к развертыванию : wtpwebapps

Теперь в командной строке (или в проводнике) перейдите к %ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps, и вы должны увидеть свое веб-приложение.Перейдите в каталог WEB-INF \ lib и проверьте, есть ли там ваша банка.

Несколько вещей, которые нужно попробовать:

  • Если банка нет в WEB-INF\ lib, вам может потребоваться опубликовать его.Щелкните правой кнопкой мыши Tomcat в представлении «Серверы» и выберите Publish.Это появляется?Если нет, снова щелкните правой кнопкой мыши Tomcat и на этот раз выберите Clean..., который очистит все и переиздает.Если это не сработает, то методом грубой силы следует удалить файлы вручную, а затем попросить Eclipse переиздать их.

  • Очистите рабочий каталог, щелкнув правой кнопкой мыши веб-приложение в разделеTomcat в представлении Серверы и выберите Clean module work directory.Или сделайте это вручную, удалив из %ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

  • Вы также должны попробовать закрыть-открыть / очистить / восстановить / обновить ваш проект веб-приложения на тот случай, если Eclipse не обнаружит изменения.

0 голосов
/ 18 января 2011

По крайней мере файлы jar libary должны находиться в WEB-INF/lib в вашем файле войны.И вам нужно только развернуть файл war на вашем производительном веб-сервере.

  • Если вы используете STS, но ваш проект не является проектом Maven: тогда вам нужно поместить файлы в <projectRoot>/WebContent/WEB-INF/libs. (чтобы построить войну с Eclipse / STS, вам нужно выполнить файл Export / Web / WAR.)

  • Если вы используете Maven, то вам нужно указать свои зависимости в pom.xml и используйте maven для упаковки войны (запустите как / Maven package).

0 голосов
/ 16 января 2011

Вам необходимо поместить различные Spring JAR-файлы в каталог WEB-INF/lib (WEB-INF/classes бесполезен для файлов JAR).

Вам не просто нужен org.springframework.orm, вам нужно большинство из них(см. здесь для диаграммы зависимости).

...