Maven не распознает EJB как зависимость проекта при попытке определить модуль

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

В моем ухе pom-файл, я ранее указывал, что и webapp, и ejb указаны как зависимости. В pom веб-приложения у меня также был указан ejb как зависимость. При попытке развернуть эту конфигурацию в Glassfish 3.1.1 я получил следующую ошибку:

Ошибка при развертывании: исключение при развертывании приложения [ухо]: не удается разрешить ссылку Локальный ejb-ref name = name, локальный интерфейс 3.x = interface, ejb-link = null, lookup =, mappedName =, jndi-name =, refType = Session, потому что в приложении с интерфейсным интерфейсом есть 2 ejb. Некоторые из возможных причин: 1. Класс bean-компонента EJB был упакован в библиотеку ear lib (или через любой другой библиотечный механизм, который делает библиотеку видимой для всех компонентных модулей), это заставляет все компоненты-модули косвенно включать этот класс bean-компонента. 2. Класс bean-компонента EJB был упакован в компонентный модуль, который ссылается на EJB прямо или косвенно через Manifest, WEB-INF / lib. Класс EJB-компонента должен быть упакован только в объявляющий модуль ejb, а не в ссылающиеся модули.Ссылающиеся модули должны включать только интерфейсы EJB. См. Server.log fo .... msg.seeServerLog

По сути, я считаю, что это говорит так, потому что у меня EJB указан как зависимость в двух разных областях, Glassfish 3.1. Я не знаю, на какую зависимость смотреть. Этого не было в 2.1.1. Из-за этого я удалил зависимость в ухе, видя, что она все еще будет частью эффективной помпы уха.

Однако теперь, когда ухо генерирует файл application.xml, оно пропускает всю информацию о ejb из файла. Теперь я могу легко развернуть приложение, но когда я пытаюсь запустить что-либо, я получаю исключения NameNotFoundExceptions относительно ejbs.

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

Артефакт [ejb] не является зависимостью проекта.

Это несмотря на то, что когда я смотрю на эффективную помпу для уха, я вижу, что ejb указан как зависимость.

Как я могу правильно сгенерировать файл application.xml, при этом соблюдая более жесткий набор правил Glassfish 3.1.1?

Дайте мне знать, если вам понадобится дополнительная информация, и спасибо за помощь!

19
задан lowell 18 November 2011 в 22:26
поделиться