Получить ссылку на локальный бизнес-интерфейс EJB3 внутри адаптера JCA
Вопрос
Я хотел бы знать, возможно ли получить ссылку на локальные бизнес-интерфейсы ejb3 внутри адаптера jca?
Адаптер ресурсов и ejb .jar
упакованы в один и тот же .ear
.Приложение работает под управлением WebSphere AS 6.1 с функциональным пакетом ejb3.
Я пытался использовать ejblocal:<full_class_name_of_local_interface>
как имя JNDI, но безуспешно.
Решение
То, что вы пытаетесь сделать, вероятно, концептуально неверно.Адаптер JCA не должен зависеть от EJB - адаптер JCA не должен выполнять поиск в EJB.
Но адаптеры JCA работают для входящий и исходящий однако возможность подключения.Правильный способ заставить соединитель JCA взаимодействовать с EJB (входящее подключение), это через компонент, управляемый сообщениями (МБР).
- Адаптер JCA определяет интерфейс, который будет использоваться для обмена данными.
- Затем пользовательский MDB может реализовать этот интерфейс и может получать входящие запросы от адаптера.
Я согласен, что в данном случае название "компонент, управляемый сообщениями" немного вводит в заблуждение.Пользовательский MDB действительно похож на EJB и принимает вызовы от JCA connector.Это не обязательно связано ни с сообщением, ни с асинхронной обработкой.Если вы хотите, пользовательский MDB может затем выполнить поиск или внедрить другой EJB для делегирования обработки.
Лучший документ, на который стоит обратить внимание, это "Создание адаптера ресурсов с архитектурой разъема J2EE 1.5". В нем приведен пример входящего и исходящего подключения.Соответствующий код можно найти в примерах J2EE, которые поставляются вместе с SDK.