Eclipse: плагин XDoclet устанавливает неправильный ejb-client-jar в ejb-jar.xml

Я работаю со старым корпоративным приложением, которое использует EJB 2.1. Приложение было создано в 2000-х годах с использованием Eclipse и XDoclet 1.2.3.

Приложение состоит из 1 проекта корпоративного приложения с именем AppEar, 1 проекта EJB с именем AppEjb, 1 клиентского проекта EJB с именем AppEjbClient, 1 служебного проекта с именем AppSrc и 1 динамического веб-проекта с именем AppWeb.

ejb-jar.xml находится в папке ejbModule\META-INF проекта AppEjb и указывает на проект AppEjbClient с помощью этой записи:

<ejb-client-jar>AppEjbClient.jar</ejb-client-jar>

Я обновляю приложение до Eclipse Kepler (моя рабочая область D:\WORK\WORKSPACE-eclipse-jee-kepler). Но проблема, с которой я сталкиваюсь, заключается в том, что подключаемый модуль XDoclet теперь устанавливает неправильный ejb-client-jar в ejb-jar.xml. Вот как сейчас настраивается:

<ejb-client-jar>AppSrc.jar</ejb-client-jar>

Таким образом, подключаемый модуль XDcolet теперь думает, что AppSrc является клиентским проектом EJB, а не AppEjbClient.

Я немного исследовал и обнаружил, что плагин XDcolet запускает скрипт ant tempAnt.xml, который находится в папке .metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet рабочей области. В этой папке также есть файл build.properties, который имеет 2 свойства, относящиеся к клиентскому модулю EJB:

ejb.dd.clientjar=AppSrc.jar
ejb.client.module.src=D:/WORK/WORKSPACE-eclipse-jee-kepler/AppSrc/src

Я подумал, что мне просто нужно изменить их в файле build.properties, чтобы они указывали на правильный EJB-клиент, поэтому я изменил их следующим образом:

ejb.dd.clientjar=AppEjbClient.jar
ejb.client.module.src=D:/WORK/WORKSPACE-eclipse-jee-kepler/AppEjbClient/ejbModule

Сохраните файл build.properties, а затем снова выполните очистку и сборку всего рабочего пространства.

Но все равно получил тот же неправильный ejb-client-jar в ejb-jar.xml.

Проверьте файл build.properties в папке .metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet, и он был восстановлен, удалив мои изменения. Таким образом, подключаемый модуль XDoclet перезаписывает этот файл.

Как я могу это исправить, чтобы выбрать правильный ejb-client-jar в ejb-jar.xml?


person srh    schedule 02.10.2015    source источник


Ответы (1)


Недавно мы столкнулись с той же проблемой. Способ преодолеть это состоял в том, чтобы удалить служебный проект из рабочей области eclipse, поскольку зависимости в любом случае разрешались с помощью maven poms.
После этого клиент под Java EE Tools > Remove EJB Client (и, следовательно, в ejb.dd.clientjar) установлен правильно.
Вероятно, какая-то ошибка, похожая на эту https://bugs.eclipse.org/bugs/show_bug.cgi?id=122274.

person briadeus    schedule 21.04.2016