2016-07-28 3 views
0

Я новичок в EJB и хочу убрать некоторые сомнения.Где находится клиент EJB и контейнер EJB Container находится на сервере приложений

В сервере приложений мы EJB Container + (сервлеты и JSP) + другие.

EJB Container имеет компоненты EJB и, в свою очередь, имеет EJB.

Мой вопрос: где именно находятся клиенты EJB? Является ли он на одном сервере приложений и/или на другом сервере приложений? и что такое @Local и @Remote в EJB.

ответ

0

Клиент (ы) службы EJB может быть почти везде. Клиентами могут быть другие службы EJB или CDI Beans в одном приложении или в других приложениях на одном сервере приложений или даже какое-то простое приложение Java SE на другом компьютере и/или JVM. Клиент - это просто «модуль», который использует службу EJB.

С @Local/@Remote вы указываете бизнес-интерфейс своего сеансового компонента. В частности, вам необходимо указать бизнес-интерфейс с @Remote, если вы хотите использовать службу EJB от внешнего клиента, например автономного приложения Java SE, на другой JVM.

+0

Разный JVM означает другой сервер приложений? и что вы подразумеваете под другими приложениями на одном сервере приложений. Не могли бы вы рассказать мне, какие другие приложения присутствуют для примера. –

+0

Знаете ли вы, что такое JVM? (https://en.wikipedia.org/wiki/Java_virtual_machine) .. и Java Application Server может размещать несколько приложений. Вы можете использовать сервисы EJB для пользователей из одного приложения в других приложениях, размещенных на сервере приложений. – stg

0

Если вы запустите экземпляр сервера, весь сервер будет работать в одной JVM, но может содержать несколько разных приложений. Так что разные серверы или разные JVM означают то же самое.

Немного сложно, если вы посмотрите на режим домена WildFly. Здесь вы запускаете один экземпляр, но этот экземпляр является контоллером и может запускать 1 ... n экземпляров серверов.

В любом случае, если вы используете @Local интерфейсы, клиент и сервер должны быть развернуты в одном экземпляре (но могут быть разными приложениями).

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

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