Вызов EJB из другого домена

Чем я занимаюсь:
Пытаюсь разработать небольшую прогу для вызова EJB из другого домена.

Версия
EJB 3.0
Weblogic 10.3.6

На Machine1 и Machine2 есть 2 домена, поэтому управляемые серверы:
domain1_cluster1_machine1 domain1_cluster1_machine2
domain2_cluster1_machine1 domain2_cluster1_machine2
(надеюсь, я ясно выразился)

Я следил за этим блогом, чтобы разработать программу: http://edwin.baculsoft.com/tag/weblogic/< /а>

Я развернул EJB в домене1_cluster1_machine1 и домене1_cluster1_machine2 со статусом Active, и его можно найти в дереве JNDI.
Затем клиентское приложение развертывается в домене< strong>2_cluster1_machine1 и домен2_cluster1_machine2

Весь код такой же, как и в блоге, за исключением URL-адреса провайдера:

t3://[IP of Machine1]:[Listen port of domain**1**_cluster1_machine1]

Когда я запускаю клиентское приложение из домена2_cluster1_machine1, я получаю следующее исключение:

javax.naming.CommunicationException [Корневое исключение — java.rmi.UnmarshalException: не удалось отменить маршалинг класса java.lang.Object; вложенное исключение: java.lang.ClassNotFoundException: com.edw.ejb3.HelloEJBRemote]

Когда я неправильно набираю в поиске, т.е. ic.lookup("com.edw.ejb3.HelloEJBRemote"), возникает исключение:

javax.naming.NameNotFoundException: при попытке поиска «com.edw.ejb3.HelloEJBRemote» не был найден подконтекст «com». Решено '' [Корневое исключение - javax.naming.NameNotFoundException: при попытке поиска 'com.edw.ejb3.HelloEJBRemote' не был найден подконтекст 'com'. Решено '']; оставшееся имя 'com/edw/ejb3/HelloEJBRemote'

Следовательно, могу ли я сделать вывод, что клиент может найти EJB из domain1, так как исключение не NameNotFoundException?

Тогда что в этом плохого? Это связано с безопасностью?

Я новичок в Weblogic и EJB. Ваша помощь будет оценена по достоинству. Спасибо!


person Janice    schedule 05.11.2014    source источник
comment
У вас есть связанный класс интерфейса в клиентском приложении? скажем, внедрение HelloEJBRemote развернуто в кластере 1, а его интерфейс HelloEJBRemote должен быть частью развертывания кластера 2?   -  person Patton    schedule 09.11.2014
comment
Спасибо за ваш комментарий. Я забыл интерфейс в cluster2. Спасибо! :)   -  person Janice    schedule 11.11.2014
comment
На основании вашего комментария отвечаю на ваш вопрос   -  person Patton    schedule 11.11.2014


Ответы (1)


Как упоминалось в комментариях, убедитесь, что вы развернули компоненты EJB, как описано ниже.

Кластер 1

  • HelloEJBRemote
  • HelloEJBRemoteImpl

Кластер 2

  • HelloEJBRemote

Выполните поиск от Cluster2 до Cluster 1 для Bean, используя имя JNDI HelloEJBRemoteImpl

person Patton    schedule 11.11.2014