0

2つのjarファイル(jar1とjar2--2つのjarのpom.xmlのパッケージタイプはjar)を開発し、それらをserviceMixにインストールしています。Jar1はjar2のいくつかのパッケージを使用します。

マニフェスト.mfファイルでは、jar1とjar2にインポートとエクスポートを使用しました。serviceMix4.3.0にインストールした後。すべてがほぼ順調に進んでいます。jar 1から、jar2のパッケージを使用できます(コードをデバッグすることでわかります)。しかし、問題はここにあります:

The structure of Jar2: 
  jar2:/ 
        . 
        com 
               abc 
                   .......(classes) 
        META-INF 
               MANIFEST.MF 
        FactoryContext.xml 

The short version of jar2's MANIFEST.MF is 
   Bundle-ClassPath: . 
   Bundle-Name: jar2 
   Bundle-SymbolicName: jar2 
   Bundle-Version: 1.0.0 
   Export-Package: com.abc 
   Import-Package: xyz 
   Tool: Bnd-1.50.0 

Jar1はJar2のメソッドを呼び出し、そのメソッドは次のステートメントを使用しています

context = new ClassPathXmlApplicationContext( "FactoryContext.xml");

このステートメントに移動するたびに、FactoryContext.xmlが存在しないという例外が常にスローされます。(このファイルはクラスパスにありません)

それを機能させる方法を知っていますか?

4

1 に答える 1

1

ServiceMixフォーラムにも質問を投稿しましたが、Freeman-2から回答を得ました。これが答えです

You can try to put  FactoryContext.xml in a unique folder like META- 
INF/MyFactoryContext/FactoryContext.xml, then jar2 also export package   
META-INF.MyFactoryContext, and jar1 import package META- 
INF.MyFactoryContext, and  then should be able to use code like 
context = new ClassPathXmlApplicationContext("META-INF/ 
MyFactoryContext/FactoryContext.xml"); 
in jar1.

ここにリンクがあります http://servicemix.396122.n5.nabble.com/question-about-jar-bundle-and-classpath-td5602052.html

于 2012-03-29T19:22:25.663 に答える