'Должна быть указана неоднозначная ссылка на EJB "beanName" или, точнее, "beanInterface" - PullRequest
1 голос
/ 04 февраля 2012

У меня есть многомодульный проект, где EJB BarService в проекте bar относится к FooService EJB в foo проекте.Аннотация @EJB используется для внедрения EJB.

@EJB
private FooService fooService;

Я использую IntellijIDEA 11, и он жалуется на

'Неоднозначная ссылка EJB "beanName" или болеедолжен быть указан точный beanInterface '.

Эта ошибка появляется только для ссылок EJB в другом модуле.Если я использую beanName как предложено, ошибка исчезнет.Однако я бы предпочел не использовать его, так как было бы трудно изменить рефакторинг имени компонента, поскольку оно является строкой.

Это ошибка в IDEA или я пытаюсь что-то здесь сделать неправильно?

(Заметил , это и , это , задающие тот же вопрос на форумах JetBrains, но, к сожалению, ответов нет).

1 Ответ

3 голосов
/ 08 февраля 2012

Javadoc для javax.ejb.EJB несколько неясен в этом вопросе:

Если не предоставлена ​​информация о явном связывании и существует только один сессионный компонент в пределах того же приложения , который выставляет соответствующий клиентский тип просмотра, по умолчанию EJB зависимостей решает, что сессионный компонент.

Это спорный вопрос, означает ли применение в этом контексте «модуль EJB» или «EAR", поэтому я не обязательно думаю, что ИДЕЯ виновата.Я не знаком с другими поставщиками, но по крайней мере WebSphere Application Server попытается устранить неоднозначность в клиентском модуле EJB / WAR, прежде чем рассматривать все EJB во всех модулях EAR.

...