2012-02-23 2 views
0

У меня есть простой проект, построенный с Eclipse 3.4 (также известный как IBM RAD) на WebSphere 7.Какой «правильный» способ разместить EJB в проекте JPA?

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

SHORT версия:

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

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

UPDATE

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

LONG VERSION:

В проекте 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.

Любая помощь очень ценится, спасибо!

Роб

ответ

0

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

why can't my EAR project see the annotated EJBs and Entities in my JPA project?

+0

Итак, вы рассматриваете ** это ** как ответ на свой вопрос? Может быть, если это ответ, вы можете хотя бы попытаться объяснить, как вы на самом деле ** решили ** свою проблему? – jFrenetic

+0

Я не решил проблему. EJB в проекте TestJPA все еще не видны, мне пришлось перенести их в проект TestEJB. Я отметил этот «ответ» как «правильный», потому что ссылка на новый упрощенный вопрос - единственный путь, который мне пришлось найти для решения моей проблемы. Ваш ответ (выше) не помог; возможно, потому что ваши инструкции предназначены для Eclipse 3.5 или выше. Как я уже сказал в этом вопросе, я использую Eclipse 3.4. –

+0

Дело в том, что вы можете подождать, пока не найдете решение, затем опубликуйте его и примите в качестве ответа. То, что вы только что приняли, не ответ. – jFrenetic

1

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

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

enter image description here

+0

Я вижу эту ошибку в Eclispe, хотя. Я еще не построил и не развернул файл EAR. Любые дальнейшие идеи или детали помогут, спасибо! –

+0

'Я еще не построил и не развернул файл EAR' Что вы имеете в виду?Вы сказали, что получаете это исключение, пытаясь развернуть его на сервере, не так ли? – jFrenetic

+0

Я имею в виду, что я не развертываю EAR-файл в WebSphere вручную. Я получаю сообщение об ошибке, пока я запускаю приложение из Eclipse IDE (с помощью WebSphere 7 в списке серверов). Ты знаешь, что я имею в виду? –

Смежные вопросы