2015-04-07 3 views
0

Работая с GlassFish, пытаясь быть аккуратным, я хотел бы поместить всю свою бизнес-логику в один EJB JAR. Затем у меня есть 2 файла WAR.Как вы используете @Inject с ejb-jar с (одним или несколькими) файлами WAR?

  • приложение-интерфейс войны
  • приложение-бэкенд войны
  • приложение-логического EJB

Каждый из WAR-файлов нужно использовать EJBs, которые находятся в пределах приложения-логики -ejb JAR. Этот EJB JAR содержит основную единицу сохранения. Но я нахожу, что @Inject из любого EJB приложения-логики ejb из любой Java в файлах WAR не работает.

Кроме того, я стараюсь избегать использования EAR.

+0

Это не может работать, потому что у WAR нет такой концепции. Использование EAR - это путь, к которому вы должны пойти ... Добавьте оба файла войны в файлы EAR (проверьте параметры skinnyWars), а '@ Inject' выполнит свою работу. – khmarbaise

+0

Спасибо @khmarbaise за то, что вернулись ко мне. Я попробовал это, но это не сработало для меня. –

+0

Я дал ему еще один ход и нашел, что это сработало спасибо @khmarbaise. Тем не менее, во второй раз, когда я пробовал, не было "check for skinnyWars options". Каков вариант skinnyWars? –

ответ

0

С помощью Java EE 7 tutorial я наконец-то отработал.

Хотя бобы в app-logic-ejb находятся на одном и том же GlassFish, их нужно аннотировать как удаленные компоненты. Затем файлы WAR используют инъекцию @EJB (вместо @Inject) в правильный интерфейс в файле WAR.

@EJB 
TestBeanInterface t; 

Чтобы разделить интерфейс между JJB JAR и файлами War, необходима библиотека Java.

Итак, чтобы сделать его работу получается, мне нужно:

  • приложения библиотека
  • приложения-логический EJB
  • приложение-фронтэнд войны
  • приложение-бэкэнд-война