私はEclipseRAP製品を持っていますが、Tomcat内で使用するためのWebアプリとしてエクスポートするのが好きです。このために、私はEclipseのwarproductエクスポーターを使用します。これはこれまで正常に機能していました。
製品内のOSGiバンドルの1つをコンパイルする際に問題が発生します。これは、変数置換を使用する外部jarのセットを参照しているためです。これは、次のフラグメントに示されていますMANIFEST.MF。
Bundle-Name: ...
Bundle-SymbolicName: ...
Bundle-ClassPath2: external:/A/test1/jakarta-tomcat/shared/lib/a_base.jar
Bundle-ClassPath: external:$A_HOME$/jakarta-tomcat/shared/lib/a_base.jar
代わりに最初のクラスパスを使用し、正しいもの/A/test1/jakarta-tomcat/shared/lib/a_base.jarを配置すれば、コンパイル中はすべて問題ありません...そして、MANIFEST.MF後で手動で置換して正しいバージョンに変更することもできます。
しかし、可能であれば、この余分な手順は避けたいと思います。
A_HOME問題は、コンパイル中に適切な値を渡す方法だと思いますか?
(なぜこれを行うのですか?上記では、単一のjarファイルを示しましたが、古いTomcatアプリケーションと新しいRAPベースのアプリケーションの間で共有したいjarファイルの数が多くなっています。jarを共有する方法は他にもあります。この状況では(たとえば、OSGiフレームワークエクステンダーまたはのextendedFrameworkExports初期化パラメーターを介して)、 web.xmlEMFを使用するため、選択したメソッドが必要であるため、TomcatとEclipseの間でEMFメタデータを共有できません...したがって、クラスオブジェクトではありません... )。