Каков «правильный» способ поместить EJB в проект JPA? - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть простой проект, созданный с помощью Eclipse 3.4 (он же IBM RAD) в WebSphere 7.

У меня есть проект EAR, проект EJB и проект JPA в моей рабочей области.

SHORT VERSION:

EJB в моем EJB-проекте ссылается на EJB в моем JPA-проекте, но дает мне ошибку EJBNotFoundException.

Каков «правильный» способ помещения EJB-компонентав моем проекте JPA?

ОБНОВЛЕНИЕ

Сотрудник говорит мне, что EJB должны быть в проекте EJB, а не в проекте JPA.Это все, что я сделал не так?Хотелось бы получить второе мнение по этому поводу, спасибо.

ДЛИННАЯ ВЕРСИЯ:

В проекте JPA у меня есть объекты сущности / домена (например, Workflow.java), и у меня есть DAO (например,. WorkflowDAO.java), который аннотируется как EJB с @ Stateless.

В проекте EJB у меня есть ejb (например, WorkflowService.java), который аннотируется как @EJB с @ Stateless.

WorkflowService.java ссылается на WorkflowDAO следующим образом:

@Stateless
public class WorkflowService /*...*/
  @EJB
  private WorkflowDAO workflowDAO; /*...*

Проблема в том, что при развертывании на сервере я получаю следующую ошибку:

com.ibm.ejs.container.EJBNotFoundException, EJB с интерфейсом test.WorkflowDAO отсутствует в приложении testEAR.

Любая помощь с благодарностью, спасибо!

Роб

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Вы должны упаковать ejb-jar в корень файла ear и поместить jpa-jar в каталог lib.Обычно Eclipse заботится об упаковке, когда вы создаете JPA и EJB Project и добавляете их в отдельный Enterprise Java Project.

Обновление : Как следует из ваших комментариев, вы делаете это неправильно.Вы должны запустить EAR Project и добавить в него свои проекты JPA и EJB.Вы должны проверить свойства EAR Project и убедиться, что ваши проекты JPA и EJB перечислены на вкладке Deployment Assembly.Если нет, вы можете добавить их туда.Смотрите скриншот:

enter image description here

0 голосов
/ 24 февраля 2012

К вашему сведению, я вырыл глубже и узнал больше. Я добавил новый вопрос, который более конкретно описывает мою проблему:

почему мой проект EAR не видит аннотированные EJB и сущности в моем проекте JPA?

...