Я работаю со старым корпоративным приложением, которое использует 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?