2010-05-03 1 views
0

Даже если у меня есть разные модули в моем приложении Java EE, включая myproject-web и myproject-ejb; возможно ли вызывать (или вводить) мой сеанс сеанса ejb, который находится в модуле ejb из управляемого компонента, который находится в веб-модуле? Когда я спросил, прежде чем я вижу следующее заявление:Используя ejb 3, jsf и jboss можно вызвать метод EJB из веб-модуля?

@EJB private BeanInterface yourbean 

Однако, я хочу узнать, что можно ли или нет, звонить друг другу между различными контекстами (один из его в контексте EJB, другой управляемый bean-компонент в веб-контексте)?

Любая помощь будет оценена по достоинству.

ответ

-1

я узнал, что это невозможно без написания собственного распознавателя теперь .. Спасибо

+0

Bariscan, Не могли бы вы описать ваше решение? – 2011-12-09 13:54:01

+0

Я пока не нашел решение, извините. – Javatar

1

Вы можете ввести @EJB в класс @ManagedBean, но не наоборот. Если вы хотите выполнить требуемую бизнес-логику в классе EJB, вам необходимо передать управляемый экземпляр bean-объекта в качестве аргумента метода.

@Stateless 
public class EJB { 
    public void process(ManagedBean bean) { 
     // Business logic. 
    } 
} 

@ManagedBean 
public class ManagedBean { 
    @EJB private EJB ejb; 

    public void submit() { 
     ejb.process(this); 
    } 
} 
+0

+1, но я был бы осторожен с передачей всего управляемого компонента в EJB. Вы можете эффективно передавать прокси-сервер, который может быть неактуальным в контексте EJB. + это, скорее всего, будет нарушением «закона Деметры» – Bozho

+0

Сначала большое спасибо за ваши ответы. Итак, вы имеете в виду, что мне не нужно искать jndi для поиска сеанса ejb, который находится в ejb-контексте из веб-модуля? Я знаю, если ejb и управляемый bean-компоненты находятся в одном контексте, тот же модуль (например myProject-ejb) можно вставить с помощью @EJB anno. Тем не менее, я не мог понять, можно ли вводить из разных контекстов ... У вас есть идеи? Большое спасибо, Baris – Javatar

0

Если вы действительно хотите, чтобы это все средства, я думаю, вы могли бы попытаться написать свой собственный распознаватель собственности и ввести (я не пытался).

Смежные вопросы