Не удалось получить бизнес-объект EJB

У меня есть ситуация, когда мне нужно вызвать метод B() EJB из метода A() того же EJB, при этом новая транзакция начинается в методе B().

Я читал в некоторых потоках, что получение ссылки на EJB через

sessionContext.getBusinessObject(EjbLocalInterface.class);

будет работать. Но это дает мне

java.lang.Exception: com.ibm.ejs.container.UnknownLocalException: вложенное исключение: java.lang.IllegalStateException: запрошенный бизнес-интерфейс не найден.

В настоящее время я работаю над EJB 2.1.


person Sahil Dave    schedule 04.06.2015    source источник


Ответы (2)


javax.ejb.SessionContext. getBusinessObject() — это метод EJB 3.0.

Я использовал javax.ejb.SessionContext.getEJBLocalObject () делать то, что вы пытаетесь успешно сделать в (отдаленном) прошлом. Однако вам нужно будет передать его в свой бизнес-интерфейс.

person Steve C    schedule 05.06.2015
comment
Спасибо, с помощью этого метода я могу получить прокси для интерфейса локального объекта EJB. - person Sahil Dave; 16.06.2015

Вы должны иметь возможность вручную запускать и закрывать транзакции, если вы используете транзакции, управляемые компонентом: -

Типы транзакций компонента

person Davos555    schedule 04.06.2015