Я хочу иметь компонент Foo
в хосте A
, который вводится аннотацией @EJB
в компонент Bar
в хосте B
.
Оба эти хоста являются отдельными автономными экземплярами Glassfish-v3
.
При чтении документов Glassfish
я обнаружил много информации, некоторые из которых звучали немного противоречиво.
Я понял, что каждому bean-компоненту присвоено глобальное имя jndi, и понял, как он построен, Каков синтаксис для переносимых глобальных имен JNDI? . Я также понял, что объявление Foo
в Bar
должно быть чем-то в этом роде (при условии, что FooRemote
- это удаленный бизнес-интерфейс Foo
, а fooejb
- его модуль): @EJB(lookup=java:global/fooejb/FooRemote) FooRemote foo
, это основан на это .
Что я не могу понять, так это где я говорю хосту A
и хосту B
, чтобы они познакомились друг с другом.
Я видел много примеров для клиентов приложений и серверов приложений, но я не смог найти пример для такого сценария.
В упоминается этот вопрос a sun-web.xml
и Global-JNDI
, но я думаю, что это не EJB3.1 (так как это не Portable JNDI
), и я не понимаю, где должен находиться этот sun-web.xml
( Я хотел бы избежать этого, если смогу).
В основном это отличается двумя способами:
- Нет опции -Dorg.omg.CORBA.ORBInitialHost = param (насколько я вижу)
- Любое решение, конечно, должно предусматривать включение третьего хоста
C
, с которым A
и B
взаимодействуют для различных целей.
У меня сильное чувство, что я здесь упускаю что-то простое, и я очень ценю указатели на то, что мне не хватает.
Кстати, я бы хотел как можно больше избегать файлов дескрипторов и тому подобного и оставлять большую информацию о аннотациях и только ip хоста для настройки на сервере.
Edit:
Я думаю, что другой интересный аспект этого вопроса - как балансировка нагрузки используется в этом аспекте, то есть, скажем, у меня есть серверы A1
и A2
, которые одинаковы, как будет происходить балансировка нагрузки при маршрутизации запроса от B
или A1
или A2
Edit2:
Я думаю, что может не иметь отношения к ejb 3.1, но связано с тем, как дать возможность двум серверам приложений видеть реестр jndi друг друга. Я думаю, что это не связано с ejb 3.1, так как похоже, что подобная проблема существует в 3.0 с Global
не переносимым jndi.
Я полагаю, что некоторые настройки на каждом сервере приложений позволят мне настроить, какие другие «соседи» должны запрашивать удаленные bean-компоненты jndi.
Надеюсь, что это дает ключ к кому-то там.
Спасибо
Еффий