В EJB2 необходимо использовать метод getEJBBusinessObject () в EJB для передачи ссылки на себя при вызове другого (локального / удаленного) компонента.
Применимо ли это к EJB3 ?
например
@Stateless
public class MyBean implements MyBeanLocal {
@Resource private SessionContext sessionContext;
public void myMethod() {
OtherBeanLocal otherBean = ...; // getting reference to other local EJB.
MyBeanLocal myBean = sessionContext.getBusinessObject(MyBeanLocal.class);
b.aMethod(myBean);
}
// Edit: calling myMethodTwo() from inside of myMethodOne()
public void myMethodOne() {
MyBeanLocal myBean = sessionContext.getBusinessObject(MyBeanLocal.class);
myBean.myMethodTwo();
}
public void myMethodTwo() {
...
}
...
}
Кроме того, если я получаю свой локальный компонент с использованием метода getBusinessObject () ,это так же, как если бы я использовал общий поиск JNDI ?
Я проверил оба подхода, и оба работают, но я не уверен, что объект бина обрабатывается одинаковоcontainer.
Edit : по-прежнему нужна ссылка на сам ejb при вызове myMethodTwo () из myMethodOne () того же ejb в EJB3?Разрешено ли вызывать методы внутри одного и того же ejb через эту ссылку?Как будут реагировать транзакции, если я решу использовать некоторые из них?