Разъяснение и разрешение «зависимостей модуля Java EE» - PullRequest
0 голосов
/ 09 июня 2011

Я пытаюсь настроить сеть проекта зависимость от утилиты проекта.Мой служебный проект настроен с помощью 'Utility Module' фасета проекта и 'Java 5' .Когда я выбираю 'Зависимости модуля Java EE' в свойствах моего веб-проекта, мой служебный проект не отображается.Я считаю, что это проблема, и хотел бы ее решить!

Я также попробовал следующее: Поскольку проект Utility, однако, обнаруживается в 'Зависимости модуля Java EE' в свойствах моего EAR я выбрал зависимость в своем EAR и обнаружил, что утилита теперь доступна для моего веб-проекта, она выглядит как.например, Utility.jar.В конечном счете, этот кажется желаемым эффектом.Однако проблема, похоже, связана с разрешением зависимостей сервера.Jar распространяется в EAR и добавляется в Манифест Сети как, например, Utility.jar.Но зависимости проекта Utility не включаются вместе с этим (или что-то на это влияющее).Примечание. Моя компания использует Ivy для разрешения зависимостей.Проблема здесь в том, что конкретный Jar, который я получаю NoClassDefFoundError s, включен также в веб-зависимость (т. Е. Jar существует в каталоге WEB-INF / lib).Поэтому я не уверен, почему, если это жизнеспособное решение, Jar не может разрешить зависимость от загрузчика классов в Интернете.

Также стоит отметить, что проект Utility был добавлен в 'Project' вкладка веб-проекта 'Build Path' ;следовательно, я не получаю никаких ошибок компиляции.

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

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


Решение опубликовано ниже

Всем, кто интересовался этой проблемой для меня, я ценю ваше время.Надеюсь, это поможет кому-то с подобной проблемой в будущем.

С уважением, Биз

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Раньше мне не удавалось проверить проект Utility в свойствах веб-проекта> «Зависимости модуля Java EE»> «Веб-библиотеки».Я не уверен почему.Модуль появился, но когда я проверил его, нажал «Применить» и «Хорошо», когда я снова открыл свойства, модуль не был отмечен.Поэтому я добавил зависимость вручную в файл org.eclipse.wst.common.component:

<dependent-module archiveName="Utility.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/Utility/Utility">
    <dependency-type>uses</dependency-type>
</dependent-module>

Это полностью решило проблему, и мое приложение полностью функционирует!

0 голосов
/ 09 июня 2011

Веб-проекты не могут иметь зависимости от служебных проектов.Это только для файлов EAR, потому что это конструкция EAR, отсутствующая в файлах WAR.

Экосистема Eclipse Java EE очень перегружена.Я сильно подозреваю, что это не было разработано с самого начала Eclipse, а взято непосредственно из одного из коммерческих предложений IBM по Eclipse.Открыто для обсуждения, была ли это хорошая идея или нет.

...