Структура проекта Eclipse EAR в eclipse

В последние годы я работал с Java EE 6 и более простыми структурами приложений, где присутствовал только один ejb и один военный проект.

Сейчас у нас более сложный проект, где мне нужны дополнительные модули: - JPA-пакет - клиентские интерфейсы для автоматизированного тестера приложения

Итак, я начал создавать следующие проекты в eclipse:

  • Клиентский проект
  • Проект JPA, ссылающийся на клиентский проект
  • Проект EJB, ссылающийся как на клиентские проекты, так и на проекты JPA
  • Проект WAR, который должен использовать службы из проекта EJB и классы pojo из проекта JPA.
  • Проект EAR, содержащий все это

Собирая проект вместе, я сталкиваюсь с разными проблемами:

  • «В пути сборки проекта обнаружен цикл...», поскольку несколько проектов ссылаются на клиентский проект, и он упакован в EAR.
  • Ошибка при обработке аннотации: {0}. java.lang.NoClassDefFoundError

Я пытался решить эти проблемы. Я придумал решения, но ни одно из них не работает. Пример 1.: Я упростил упаковку только для JPA + Client + EAR, но это также дает мне ошибку обнаружения цикла. Когда я отключаю ошибку, я получаю 2-ю ошибку.

Пример 2.: Пытался упростить зависимости пути сборки, но безуспешно.

Я также думал об объединении проектов EJB + JPA, возможно, это сработает.

Но мой вопрос: используя Eclipse для разработки, какова желаемая структура (проект и зависимость) для приложения EAR, содержащего клиентские интерфейсы, объекты ejbs, jpa и автономное приложение для тестирования, использующее только клиентские интерфейсы?

Спасибо за вашу помощь!


person csabee    schedule 04.07.2014    source источник


Ответы (1)


Прежде всего, для ваших компонентов вам не понадобится файл EAR, для приложений Java EE 6 достаточно файла WAR (см. руководство по Java EE 6 по этой теме).

Во-вторых, я рекомендую не использовать макет проекта, созданный мастером eclipse, а использовать архетип на основе maven (например, Архетипы рюкзака), что даст вам более простую и стандартизированную компоновку.

person Alexander Rühl    schedule 07.07.2014
comment
Привет, WAR мне недостаточно, так как нам нужны разные файлы войны для доступа к удаленным bean-компонентам, упакованным в пакеты ear/ejb. Другое дело: мы не используем maven, и в настоящее время моя команда разработчиков слишком младшая, чтобы его использовать. Также у меня были некоторые проблемы с этим, и в настоящее время у нас нет программистов, имеющих опыт работы с maven. - person csabee; 07.07.2014
comment
Что ж, Maven действительно требует больше ноу-хау, но я полагаю, что простое его использование должно быть доступно каждому инженеру-программисту, не говоря уже о других преимуществах, которые вы получаете, например, о легком использовании с такими инструментами, как Jenkins. Но тем не менее, вы можете создать проект из такого архетипа и адаптировать макет и создавать артефакты самостоятельно, например, с помощью Ant. А для eclipse вы можете использовать внешние конфигурации инструментов, чтобы начать развертывание. - person Alexander Rühl; 07.07.2014
comment
Привет, у нас есть новый программист, который только что проверил эти ранцевые архетипы. Проблема в том, что все они упакованы в один военный файл. Так как нам также нужно, чтобы проекты клиентского интерфейса вызывались разными приложениями, эта структура нам не поможет. - person csabee; 21.07.2014
comment
@csabee Checkout это полномасштабный пример макета проекта на основе maven. Или, может быть, достаточно следовать примеру модуляризации Адама Биена и взять банки для использования клиентами, а также. - person Alexander Rühl; 21.07.2014