Eclipse:XDoclet插件在ejb-jar.xml中设置了错误的ejb-client-jar

时间:2015-10-02 19:29:01

标签: java eclipse java-ee ejb xdoclet

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

该应用程序包含1个名为AppEar的企业应用程序项目,1个名为AppEjb的EJB项目,1个名为AppEjbClient的EJB客户端项目,1个名为AppSrc的实用程序项目和1名为AppWeb的动态Web项目。

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-jar.xml中设置了错误的ejb-client-jar。这就是它现在的设置方式:

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

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

我调查了一下,发现XDcolet插件运行了位于工作区的tempAnt.xml文件夹中的ant脚本.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-开普勒/ AppSrc / SRC

我认为我只需要在build.properties文件中更改它们以指向正确的EJB客户端,以便我这样更改它们:

  

ejb.dd.clientjar = AppEjbClient.jar
  ejb.client.module.src = d:/ WORK / WORKSPACE-Eclipse的JEE-开普勒/ AppEjbClient / ejbModule中

保存build.properties文件,然后再次清理并构建整个工作区。

但是在ejb-jar.xml中仍然遇到了同样错误的ejb-client-jar。

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

如何修复此问题,以便在ejb-jar.xml中选择正确的ejb-client-jar?

1 个答案:

答案 0 :(得分:0)

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