У меня есть веб-приложение на основе 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? Требуется ли какая-либо специальная конфигурация манифеста?