jar bundle и его путь к классам в ServiceMix-карафе - PullRequest
0 голосов
/ 29 марта 2012

Я разрабатываю 2 файла jar (jar1 и jar2 - тип упаковки в pom.xml из 2 jar is jar) и установил их в serviceMix. Jar1 будет использовать несколько блинов от jar2.

В файлах manifest.mf я использовал импорт и экспорт для jar1 и jar2. После установки в сервис Mix 4.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 не существует (Гость этот файл не в classpath)

Вы знаете, как заставить это работать?

1 Ответ

1 голос
/ 29 марта 2012

Я также разместил свой вопрос на форуме 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

...