0

我正在使用一个使用 EJB 2.1 的旧企业应用程序。该应用程序是在 2000 年代使用 Eclipse 和 XDoclet 1.2.3 构建的。

该应用程序由 1 个名为的企业应用程序项目AppEar、1 个名为的 EJB 项目AppEjb、1 个名为的 EJB 客户端项目AppEjbClient、1 个名为的实用程序项目AppSrc和 1 个名为的动态 Web 项目组成AppWeb

位于项目文件夹中,ejb-jar.xml并通过此条目指向项目:ejbModule\META-INFAppEjbAppEjbClient

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

我将应用程序升级到 Eclipse Kepler(我的工作区是D:\WORK\WORKSPACE-eclipse-jee-kepler)。但是我遇到的问题是 XDoclet Plugin 现在在 ejb-jar.xml 中设置了错误的 ejb-client-jar。这是它现在的设置方式:

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

所以不知何故,XDcolet 插件现在认为AppSrc是 EJB 客户端项目而不是AppEjbClient.

我调查了一下,发现 XDcolet 插件运行tempAnt.xml位于.metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet工作区文件夹中的 ant 脚本。该文件夹还有一个build.properties文件,该文件具有与 EJB 客户端模块相关的 2 个属性:

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-jar.xml 中仍然得到了相同的错误 ejb-client-jar。

检查build.properties文件.metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet夹中的文件,并通过删除我的更改将其恢复。所以 XDoclet Plugin 会覆盖这个文件。

我该如何解决这个问题,以便在 ejb-jar.xml 中选择正确的 ejb-client-jar?

4

1 回答 1

0

我们最近遇到了同样的问题。克服这个问题的方法是从 eclipse 工作区中删除实用程序项目,因为无论如何依赖项都是通过 maven poms 解决的。
之后,正确设置了Java EE Tools > Remove EJB Client(因此在 ejb.dd.clientjar中)下的客户端。可能与此https://bugs.eclipse.org/bugs/show_bug.cgi?id=122274
类似的一些错误。

于 2016-04-21T12:25:13.343 回答