2013-04-04 5 views
0

У меня небольшое приложение EAR-JEE6, оно состоит из 3 модулей (EAR + EJB + WEB). Есть 3 файла: ухо, банка и война - в ушном файле хранится банка и файл войны.Развертывание нескольких экземпляров Glassfish, разбиение EAR

Мой вопрос:
Я хотел бы установить 2 GlassFish серверов на 2 разных машинах (IP-1 и IP-2), я хотел бы развернуть EJB (JAR-файл) на IP-1 и WEB (war-file) на IP-2.

В моем веб-проекте есть сервлет, зависящий от компонента без состояния в моем проекте EJB, впрыскивается. Я не могу обдумать это.

Как веб-проект может найти фазу без состояния в проекте EJB? Мне нужен какой-то сервис lookup, который является «глобальным» (где я могу ввести все IP-адреса) - просто угадывая здесь.

Возможно ли это?

ответ

1

Вы можете сделать это с помощью интерфейса именования и интерфейса Java (JNDI).

Вы должны Lookup ваши бобы вручную так, как это:

Context ic = new InitialContext(); 
Object o = ic.lookup("java:comp/env/ejb/Foo"); 

Чуть более подробную информацию можно найти здесь: Accessing EJB Components in a Remote GlassFish Server или this stackoverflow question.

+0

Спасибо. Но если я поместил эти строки в сервлет, как он найдет «java: comp/env/ejb/Foo», если он развернут на другом IP-адресе? – InKi

+0

try { Исходный контекст контекста = новый InitialContext(); CapitalBeanRemote bean = (CapitalBeanRemote) context.lookup ( «java: global/RemoteEJBModule/CapitalBean»); messageTextField.setText (bean.getCapital («Япония»)); context.close(); } catch (Исключение e) { e.printStackTrace(); } Веб-проект должен зависеть от проекта EJB, потому что CapitalBeanRemote является частью EJB-проекта? – InKi

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