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 プラグインが 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、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 に答える