#java #eclipse #jakarta-ee #weblogic #classpath
#java #eclipse #джакарта-ee #weblogic #путь к классу
Вопрос:
Я разрабатываю систему JavaEE с несколькими приложениями в Weblogic AS (10.3.5), используя Eclipse indigo с плагином OEPE. Я выключил свой компьютер, снова включил его, запустил eclipse, и вдруг я повсюду получаю ошибки пути к классу (ничего не изменилось).
Теперь позвольте мне разобраться:
1. Допустим, у меня есть приложение с одним проектом EAR, которое содержит проект EJB и проект EJBClient (оба в сборке развертывания).
2. Я написал новый обычный Java-проект, и я хочу использовать его как в проектах EJB, так и в EJBClient (он должен быть виден им).
3. Насколько я знаю, я могу просто добавить этот Java-проект в сборку развертывания проекта EAR, и он будет виден проектам EJB и EJBClient.
4. Это работало для меня до сих пор, но теперь я получаю ошибки пути к классу, и я должен добавить этот Java-проект в путь сборки каждого проекта.
Как я должен задать путь к классу при использовании технологии JavaEE в Eclipse?
Комментарии:
1. Это проблема с зависимостями от других проектов или с зависимостями от Java EE API (
@Stateless
,@WebServlet
,@Entity
, и т.д.)?2. @Pedro Проблема связана с зависимостями других проектов.
Ответ №1:
После некоторой настройки мне удалось устранить ошибки:
Сначала я удалил библиотеку с именем ‘EAR libraries’ из пути сборки каждого из моих обычных Java-проектов (я понятия не имею, зачем Eclipse их добавила, их там не должно быть).
Затем для каждого проекта EAR я удалял и повторно добавлял каждый проект или jar, который не был частью EAR (обычные Java-проекты, другие проекты EJBClient и т. Д.).
Это решило проблему отсутствия классов, которые не включены в EAR, но затем у меня возникла ошибка «циклической зависимости».
Я сузил эту ошибку до проектов, которые ее вызвали — это был обычный проект Java, который использовал проект EJBClient некоторого приложения в своем пути сборки, а проект EJBClient также использовал проект Java в своем пути сборки.
Звучит тривиально, тогда почему я не видел его в первую очередь? Ну, я заглянул в проект EAR приложения, и в нем не было проекта java в сборке развертывания, а в EJBClient не было Java project в качестве «требуемого проекта». Так где же это было?
Проект java находился в библиотеке ‘EAR libraries’ проекта EJBClient, который, согласно Eclipse, автоматически генерируется в соответствии с файлом ‘MANIFEST.MF’ (который, кстати, был пустым).
Поэтому я просто удалил и повторно добавил библиотеку ‘EAR libraries’ из пути сборки проекта EJBClient, и это решило проблему, и теперь все работает.
В заключение, похоже, что плагин OEPE для Eclipse имеет некоторые ошибки, которые необходимо исправить.