You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by nvtd4000 <nv...@gmail.com> on 2012/03/29 00:46:11 UTC

question about jar bundle and classpath

I am developing 2 jar files (jar1 and jar2 - the packaging type in pom.xml of
2 jars are jar) and install them into serviceMix. Jar1 will use some
packakes from jar2. In the manifest.mf files, i used import and export for
jar1 and jar2. After installing into serviceMix 4.3.0. Everything going
almost fine. From jar 1, i can use packages in jar2 (i know that by
debugging the code). But the problem is here:

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 call a method of Jar2, that method is using bellow statement
context = new ClassPathXmlApplicationContext("FactoryContext.xml");

whenever it goes to this statement, it always throws exception say that
FactoryContext.xml doen not exist.  (i guest this file is not in classpath)

Do you know how to make it work?




--
View this message in context: http://servicemix.396122.n5.nabble.com/question-about-jar-bundle-and-classpath-tp5602052p5602052.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: question about jar bundle and classpath

Posted by nvtd4000 <nv...@gmail.com>.
Great. It worked for me.
Thanks.

--
View this message in context: http://servicemix.396122.n5.nabble.com/question-about-jar-bundle-and-classpath-tp5602052p5604480.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: question about jar bundle and classpath

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

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.


Freeman
On 2012-3-29, at 上午6:46, nvtd4000 wrote:

> I am developing 2 jar files (jar1 and jar2 - the packaging type in  
> pom.xml of
> 2 jars are jar) and install them into serviceMix. Jar1 will use some
> packakes from jar2. In the manifest.mf files, i used import and  
> export for
> jar1 and jar2. After installing into serviceMix 4.3.0. Everything  
> going
> almost fine. From jar 1, i can use packages in jar2 (i know that by
> debugging the code). But the problem is here:
>
> 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 call a method of Jar2, that method is using bellow statement
> context = new ClassPathXmlApplicationContext("FactoryContext.xml");
>
> whenever it goes to this statement, it always throws exception say  
> that
> FactoryContext.xml doen not exist.  (i guest this file is not in  
> classpath)
>
> Do you know how to make it work?
>
>
>
>
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/question-about-jar-bundle-and-classpath-tp5602052p5602052.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

---------------------------------------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com