2014-02-02 2 views
1

Прошло некоторое время, и все еще есть несколько вещей, которые мне не понятны.Прояснение структуры проекта EAR и maven

Давайте начнем с основ: что мне нужно сделать. Я создаю веб-приложение, которое управляет некоторыми данными, выполняет некоторые вычисления и дает пользователю результат. Будет также отдельная версия с некоторыми упрощениями.

Поэтому я подумал, что настало подходящее время для использования структуры упаковки EAR и EJB. Я создал с NetBeans базовый проект j2ee уха с поддержкой Maven:

project structure

Все они имеют свои собственные pom.xml. Для того, что я понимаю, первый - это просто оболочка, второй - это «реальный» проект, который не содержит исходного кода, но инкапсулирует два других. В веб-проекте я помещал все веб-материалы плюс бобы jsf. В ejb я планировал поместить мою модель данных со всеми необходимыми аннотациями, а также понимать JPA и JAXB. Должны быть также некоторые дополнительные классы: класс фасада или сеансовый компонент, которые позволяют мне манипулировать базой данных с базой данных, а также некоторые классы, которые содержат мою бизнес-логику, строго связанную с моими данными.

Вопрос: правильно ли положить все это в проект EJB? Почему не простой проект, от которого зависит веб-модуль?

Перемещение вперед: веб-проект. Во-первых, netbeans не ставит зависимость проекта EJB в его pom. Поэтому я не могу видеть мои бобы отсюда. Это правильно или мне нужно вручную добавить SRA-ejb в pom как зависимость?

Во-вторых, используя макрос netbeans, как те, которые генерируют сеансовые компоненты из сущности или CRUD jsf-страниц из сущностей, похоже, что он пытается сгенерировать и поставить сеансовые компоненты здесь, в веб-проекте. Я думаю, что они лучше подходят для ejb. Как вы думаете?

Последний вопрос: в моем автономном приложении я планировал использовать только модуль ejb. Но я думаю, что я должен носить с собой контейнер EJB, верно?

ответ

1

Прошло некоторое время, и все еще есть несколько вещей, которые не являются понятными для меня.

Я знаю, что чувствует себя точно: D

Все они имеют свои собственные pom.xml. Для того, что я понимаю, первый один - это просто оболочка, второй - «реальный» проект, который не содержит исходного кода, а инкапсулирует два других.

Правильно, он не содержит исходный код, но может содержать файлы XML для объявлений и общую lib папку, которая содержит общие библиотеки веб и EJB проектов.

В веб-проекте я помещаю все веб-материалы плюс jsf-бэкэнс. В ejb я планировал поместить мою модель данных со всеми необходимыми аннотациями , которые также понимают JPA и JAXB.Там также должны быть некоторые дополнительные классы: класс фасада или сеанс bean, которые позволяют мне выполнять базовые манипуляции с базой данных, и некоторые классы, которые содержат мою бизнес-логику, строго связанные с моими данными .

Вопрос: правильно ли положить все это в проект EJB? Почему не простой проект, от которого зависит веб-модуль?

Я не знаю, что вы имеете в виду с «простым проектом», если вы имеете в виду просто обычный файл JAR с классами: модуль EJB почти такие же плюс дескриптор развертывания, который вызывает сканирование аннотаций.

Перемещение вперед: веб-проект. Во-первых, netbeans не ставит зависимость проекта EJB в его pom. Поэтому я не вижу свои бобы от здесь. Является ли это правильным или мне нужно вручную добавить SRA-ejb в pom в качестве зависимости?

Да, в вашем случае вам нужна эта зависимость. Ваш веб-проект зависит от вашего «сервиса».

Во-вторых, с помощью некоторых Netbeans макрос, как и те, которые генерируют сессионные компоненты от сущности или CRUD JSF страницы из субъектов, это выглядит как он попытаться создать и поставить сессионных компонентов здесь, в проекте веб , Я думаю, что они лучше подходят для ejb. Как вы думаете?

Я думаю, что имеет смысл вкладывать их в проект EJB, потому что они исходят из пакета javax.ejb.* и относятся к слою EJB. Вы, , можете добавить в проект, но тогда вам действительно не нужен EAR, и вы можете использовать обычный веб-проект, как раньше.

последний вопрос: в моем самостоятельном приложении, я планировал использовать только модуль EJB. Но я думаю, что я должен носить с собой контейнер EJB , верно?

Нет, вам не нужен контейнер EJB. Вы можете искать свои EJB через JNDI, но вам понадобится EJB с удаленным интерфейсом и копией этого интерфейса у вашего автономного клиента.

Вы можете найти некоторые учебники о том, что здесь:

Смотрите также:

Смежные вопросы