Не может искать EJB2 из другого EJB2, но может сделать это из сервлета - PullRequest
0 голосов
/ 14 мая 2011

Я разрабатываю корпоративный проект в NetBeans на GlassFish (J2EE_1.4).В моем проекте есть несколько сущностных компонентов, пара сессионных компонентов и компонент, управляемый сообщениями.Я использую бины сущностей из сервлета (в том же проекте, из веб-компонента) следующим образом:

InitialContext ic;
ic = new InitialContext();
UserLocalHome userHome = (UserLocalHome) ic.lookup("java:comp/env/ejb/User");

Все работает отлично.Но когда я пытаюсь выполнить поиск из сессионного компонента или MDB, я получаю ошибку именования.Ни один боб не может искать любой другой боб.В дескрипторах веб-развертывания есть некоторые ссылки, но AFAIK нет необходимости определять ссылки для EJB.Также все бины сущностей имеют только локальный интерфейс.

1 Ответ

1 голос
/ 15 мая 2011

Каждый EJB имеет свое собственное пространство имен java: comp, поэтому в J2EE 1.4 каждый <entity/> или <message-driven/> должен иметь свой собственный <ejb-ref/> (или <ejb-local-ref/>).

В JavaEE 6 один EJB (или сервлет) может объявить ejb-ref с префиксом java:module (или java:app), чтобы любой компонент в этой области мог совместно использовать ссылку.

...