2013-08-06 2 views
0

Я занимаюсь разработкой приложения, по очень простой системе Student Resource Management (ГСО)EJB 3.1 Применения Design

Я должен использовать Enterprise Java Beans, стенд только клиент Java GUI, и клиент веб-браузер

Если я использую для клиента браузера Servlets, должен ли я поместить всю свою логику в корпоративные компоненты и просто вызвать методы из Servlet? поэтому я мог бы вызывать аналогичные методы из автономного приложения GUI.

Смущает то, что у меня не должно быть логики в моем Servlets, у меня должна быть вся моя логика в уровне боба приложения.

Еще одна вещь: В чем разница между Session Bean и Session Bean from Entity Classes?

Клиент GUI также будет использовать логин, но это единственное подобное действие, которое будет использоваться и клиентом браузера. Клиент браузера может искать и просматривать только некоторые данные.

ответ

3

Вы можете поместить свою бизнес-логику в сеансовые компоненты EJB, которые, в свою очередь, используют объекты EJB JPA для доступа к базе данных, например. Если вся ваша логика должна находиться на уровне EJB, вам нужно идти этим путем. Таким образом, сеансовые компоненты EJB являются интерфейсами вашей бизнес-логики. Класс сущности JPA отображается на таблицы в RDBM.

Таким образом, сервлеты и автономные приложения командной строки могут вызывать методы, определенные в сеансовых компонентах EJB. Сессионные компоненты должны возвращать объекты передачи данных, которые готовы к отображению в представлении (например, без дополнительной обработки в сервлете).

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

Контейнеры EJB - управляемые бобы (контролируемые сервером приложений) и предоставляют, например, декларативные транзакции/безопасность.

Элементы EJB сущности устарели и заменены JPA.

+0

Хэй спасибо, что это отличный ответ. Но все же в Nebeans у вас есть возможность создать «Session Bean для классов сущностей» и используется в учебнике Netbeans о Java EE 6. Без сеанса сеанса просмотра нет, не означает ли это, что интерфейс вообще не нужен? –

+0

Это, вероятно, означает «EJB session beans» с «сущностями EJB JPA» (это то, что я описал в первом абзаце). «Объекты EJB JPA» заменили «EJB entity beans»: [Википедия] (http://en.wikipedia.org/wiki/Enterprise_JavaBeans#Entity_beans_.28deprecated.29) – Beryllium

+0

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

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