Создайте JAR из веб-приложения на основе Spring-Hibernate - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть веб-приложение на основе Spring MVC с Hibernate. Ниже приведена структура каталогов:

  • ЦСИ
    • com / myproject / abstractmodels / <- содержит некоторые абстрактные файлы java для объектов домена </li>
    • com / myproject / dao / peoplemodel / <- dao layer, используя hibernate для получения данных </li>
    • ком / MyProject / дао / anothermodel /
    • com / myproject / domain / peoplemodel / <- файлы доменов / BusinessObjects и HBM для отображений гибернации </li>
    • ком / MyProject / домен / anothermodel /
    • com / myproject / service / Personmodelservice <- Сервисный уровень взаимодействует с уровнем DAO </li>
    • ком / MyProject / сервис / anothermodelservice
    • com / myproject / controller / <- сервлеты, использующие слой службы и объекты домена для веб-презентации (файлы JSP) </li>
  • WebRoot
    • WEB-INF
      • web.xml <- настраивает веб-приложение и среду Spring для использования приведенных ниже xmls для настройки слоев. </li>
      • конфиг
        • services.xml <- устанавливает уровень сервиса, который склеивает интерфейс сервиса с его реализациями и внедряет компоненты DAO </li>
        • hibernate.xml <- использует hibernate-файлы hbm для сопоставлений и определяет bean-компоненты DAO </li>
        • servlets.xml <- бины для контроллеров и служебных бинов вводятся в него </li>
        • views.xml <- jsp файлы </li>

Теперь мне нужно создать библиотеку (jar), используя пакеты Service, DAO, Domain и AbstractModels. По сути, идея заключается в том, что при наличии этого jar-файла и базы данных любой может создавать свои собственные сервлеты / пользовательские интерфейсы или создавать веб-сервисы на основе наших объектов hibernate, service и domain.

Я просто создал файл jar, содержащий каталоги:

 - com/myproject/abstractmodels/
 - com/myproject/dao/personsmodel/
 - com/myproject/dao/anothermodel/
 - com/myproject/domain/personsmodel/
 - com/myproject/domain/anothermodel/
 - com/myproject/service/personsmodelservice
 - com/myproject/service/anothermodelservice

без сервлетов и добавление его в путь сборки веб-приложения. Проект компилируется, это означает, что сервлеты могут находить служебные бины и объекты домена, но он не запускается. Bean-компоненты, определенные в services.xml, не могут быть созданы. Я проверил файл jar, структура пакета правильная и содержит файл класса. Но при запуске все равно выдаст эту ошибку:

Loading XML bean definitions from ServletContext resource [/WEB-INF/config/servlet.xml]
Loading XML bean definitions from ServletContext resource [/WEB-INF/config/services.xml]
Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/config/services.xml]; nested exception is org.springframework.beans.FatalBeanException: Unable to create DWR bean creator for 'com.myproject.abstractmodels.ModelConstants#0'.; nested exception is java.lang.ClassNotFoundException: com.myproject.abstractmodels.ModelConstants

Как я могу сделать файл jar, чтобы исправить эту проблему? Нужно ли помещать каталог WEB-INF в файл jar? Требуется ли какая-либо специальная конфигурация манифеста?

1 Ответ

0 голосов
/ 08 декабря 2011

Нельзя помещать банку в путь сборки проекта.Он должен быть помещен в папку WEB-INF / lib, и Eclipse автоматически

  • поместит этот файл в путь сборки.
  • развернет этот файл как часть веб-приложения, гдеон будет в пути к классам веб-приложения, в соответствии со спецификацией сервлета.

Если вы поместите jar в путь сборки проекта, проект будет скомпилирован, но jar не будет частью развернутогоWebApp.

...