Структура проекта 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)


arrow_upward
0
arrow_downward

Прежде всего, для ваших компонентов вам не понадобится файл 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