Как отключить локальную аннотацию @EJB на клиенте? (стеклянная рыба) - PullRequest
0 голосов
/ 23 июля 2010

У меня есть файл jar ejb3, содержащий:

1) удаленный интерфейс I1 и реализацию IMPL1 без сохранения состояния (предоставляется клиенту)

2) локальный интерфейс I2 и реализацию IMPL2 без сохранения состояния(используется локально в серверном приложении)

IMPL1 получил аннотацию @EJB для внедрения локального I2 (IMPL2).

Когда я помещаю ejb3 jar в клиент и пытаюсь развернуть клиентское приложениеон завершается с ошибкой «Не удается разрешить ссылку Unresolved Ejb-Ref» на локальный I2, потому что, очевидно, локальный I2 EJB не доступен с клиента.

Насколько я понимаю, я должен был поставить только удаленные интерфейсы исущности в клиентской библиотеке.Не реализация IMPL1, так как это вызывает проблемы.В качестве альтернативы я могу сделать I2 удаленным, а затем клиент успешно развертывается.Однако я не хочу показывать I2 и хочу получить ответ от локального компонента "по ссылке".

Проблема в том, что я не могу разделить проект на две части (клиент + сервер), поэтомуЯ поместил весь ejb jar в клиентскую библиотеку.

Можно ли отключить локальный @EJB в IMPL1 на клиенте (как-то в web.xml)?

Заранее спасибо,Антон

1 Ответ

0 голосов
/ 23 июля 2010

Инструкции по удаленному поиску и вызовам EJB можно найти в SE-клиенте в Glassfish FAQ . Несмотря на то, что он предназначен для Java EE 5 / EJB 3.0, он также подходит и для Java EE 6 / EJB 3.1.

...