Отдельные приложения JSF и EJB - PullRequest
0 голосов
/ 01 декабря 2010

Как использовать развернутое приложение EJB из отдельного приложения JSF?

Я пытаюсь разделить два приложения и получить доступ к EJB через удаленный интерфейс.Для этого у меня есть два проекта Eclipse - один содержит EJB и логику персистентности, протестирован независимо и работает.Затем я создал проект JSF, который ссылается на проект EJB (таким образом, я получаю доступ к удаленному интерфейсу), однако это терпит неудачу при попытке внедрить экземпляр EJB или поиск имени JNDI (я пробовал несколько вариантов безрезультатно).Вот что содержит мой компонент поддержки JSF:

@ EJB (lookup = "java: global / LocEJB / LocalityEJB! Com.ame.business.LocalityEJBRemote") private LocalityEJBRemote location;

на Glassfish, и я только ссылаюсь на проект EJB, а не упаковываю его в проект JSF.Когда я делаю последнее, я получаю сообщение об ошибке при инициализации проблем контейнера EJB в проекте JSF.Итак, как мне получить доступ к удаленному EJB и имеет ли смысл то, как я к нему подхожу?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Ваше JSF-приложение должно знать об интерфейсах EJB (по крайней мере, они знали об EJB 2.0). Вы используете шаблон Proxy, чтобы скрыть тот факт, что это удаленный компонент от вашего клиента JSF.

0 голосов
/ 16 января 2011

Прежде всего вы не можете использовать Локальный интерфейс, если пытаетесь получить доступ за пределами контейнера. Вы должны использовать удаленный интерфейс.

Вы можете определить свой интерфейс Remote в bean-компоненте sun-web.xml или EJB.

sun-web.xml код:

<ejb-ref>
    <ejb-ref-name>com.xxx.session.UserRemote</ejb-ref-name>
    <jndi-name>corbaname:iiop:127.0.0.xxx:3700#com.xxx.session.UserRemote</jndi-name>
  </ejb-ref>

Еще одна вещь, которую вы должны иметь удаленные интерфейсы в вашем classpath.

...