Как работает инъекция шва в Ejb3? - PullRequest
4 голосов
/ 12 апреля 2010

Мы используем

  • Шов 2.2.0
  • Java 1.6.14
  • Weblogic 10.3.1.0 (с именем 11g Doh!)

Я смотрел на

Однако я все еще не понимаю, как внедрить bean-компонент EJB3 в вспомогательный bean-компонент JSF. Мне кажется, что я должен (поправьте меня, если я ошибаюсь)

  1. Аннотировать с помощью @Name my backing bean
  2. Аннотировать с помощью @Name my EJB3 bean
  3. Используйте аннотацию @In в компоненте поддержки
  4. Поместите пустой файл seam.properties в WAR, содержащий базовый компонент
  5. Поместите пустой файл seam.properties в JAR, содержащий EJB
  6. Настройка перехватчика шва в ejb-jar.xml EJB

Разве мне не нужно где-то устанавливать URL-адрес JNDI? Как именно Seam найдет EJB? Достаточно ли перехватчика?

Также это означает, что мне нужно добавить зависимость шва в мой архив EJB (из-за аннотации @Name). Таким образом, веб-слой (Seam) «проливается» на мою бизнес-логику (EJB). Это рекомендуемый подход?

Я что-то здесь упускаю?

Ответ: Очевидно, вы можете установить шаблон JNDI в

  1. Сам EJB с аннотацией @JndiName или
  2. Файл web.xml или
  3. Файл components.xml или
  4. Файл seam.properties, как предложил Натан (это я и сделал)

Ответы [ 3 ]

3 голосов
/ 12 апреля 2010

Три вещи:

1) Больше нет вспомогательного компонента, отдельного от сеансового компонента EJB.

2) Существует URL JNDI, шаблон установлен в seam.properties (пример для JBoss в Сохранение Java с Hibernate выглядит как

org.jboss.seam.core.init.jndiPattern=caveatEmptor/#{ejbName}/local

Seam расширяет оценщик языка выражений версией, которая знает о своих новых областях и знает, где искать EJB.

3) Seam - это не веб-фреймворк, а скорее стек приложений, благодаря которому все JSF, EJB3 и Hibernate лучше играют вместе, поэтому не должно повредить наличию аннотаций Seam в EJB.

1 голос
/ 16 апреля 2010

Большинство из этих ответов доступны в примере бронирования отеля Seam. Ваша конфигурация может отличаться, потому что вы используете WebLogic, а не JBoss.

1 голос
/ 13 апреля 2010

Мой ответ - это подборка, о которой вы хотите

См. Включение WebLogic 10.3.2 (11g) (оба ответа) И Включение @Stateless @ In- @ Out-jection

И посмотрите здесь , что в справочной документации Seam говорится о том, как следует развертывать приложение Seam при использовании Weblogic

...