Аннотации JSF игнорируются в импортированном проекте

Я создаю веб-приложение с JSF 2.2, Hibernate, Primefaces и Tomcat. Поскольку теперь у меня есть два клиента, которым нужно одно и то же приложение, но с некоторыми незначительными различиями в пользовательском интерфейсе и прочем, я решил разделить проект на основной проект, в котором находится весь мой Java-код, и два DynamicWebProjects, которые зависят от это ядро. Я сделал следующее:

* создал обычный проект в Eclipse и поместил туда все мои классы Java, включая bean-компоненты, фильтры и т. д. (импортировал все необходимые библиотеки, такие как Primefaces, hibernate, jpa и т. д., через buildpath)

*создал два DynamicWebProjects и включил основной проект, как описано в Развертывание веб-приложения Eclipse с помощью Tomcat: обеспечение зависимостей нескольких проектов?

* скопировал web.xml из предыдущего "полного" проекта и просто изменил тег отображаемого имени

Теперь, когда я запускаю оба приложения, я получаю странное поведение:

* Стартовая страница (login.xhtml) отображается, но без загрузки каких-либо ресурсов. Ни css, ни изображения, ни даже компоненты Primefaces.

* Когда я пытаюсь войти в систему и вызвать loginBean.login(), я получаю сообщение об ошибке: target unreachable, identifier 'loginbean' resolved to null. Обратите внимание, что мои bean-компоненты просто объявлены как таковые с помощью аннотаций. Поэтому я попытался объявить их в файлеfaces-config.xml в каждом веб-проекте, и ошибка исчезла. Но, к сожалению, это привело к другим ошибкам, например: Error while running query: No query defined for that name [User.findUserByEmail], который также определяется через аннотацию в основном классе.

* Даже навигация больше не работает.

Я предполагаю, что каким-то образом из-за простого импорта основного проекта аннотации игнорируются. Но я действительно не хочу определять все в .xml-файле.

Конечно, я читал разные темы здесь, в Stackoverflow, но ни одна из них, похоже, не подходит для моей проблемы, поскольку я ничего не менял в коде, и он работал отлично, когда у меня было все только в одном проекте. Кроме того, основной проект, кажется, импортируется нормально, так как я могу без проблем получить доступ к основным классам. Любые подсказки о том, как это исправить? Может быть, мне также следует заявить, что я очень новичок во всем, что касается JEE, поэтому дайте мне знать, если я упустил что-то важное.

заранее спасибо


person JohnPlata    schedule 08.02.2016    source источник
comment
Спасибо за ссылку на возможный дубликат. Но моя проблема все еще существует и немного отличается, поскольку у меня нет общих ресурсов, но есть общий код Java. В основном проекте у меня есть только Java-код без каких-либо css, img, xhtml или чего-либо еще. Я добавил Faces-config.xml в основной проект, но аннотации по-прежнему игнорируются.   -  person JohnPlata    schedule 09.02.2016
comment
Редактировать: я думаю, что знаю проблему. Когда я добавляю основной проект в сборку развертывания, он не появляется в папке WEB-INF/lib, хотя и появляется в библиотеках/библиотеках веб-приложений, но только как проект, а не как jar.   -  person JohnPlata    schedule 09.02.2016