According to your resource, the Spring has find the the resource in classpath ( the url contains's the bundle id)
But it seems the db4o is trying to use the classpath resource as a File. Makesure if Db4o.openFile() can accept a classpath resource. if it cannot, Your exception will be reasonable;( I am not familiar with db4o, you can try it) I guess the exception is throw from Db4o, not from spring , is it? > -----original----- > Sender: Shamik Bandopadhyay [mailto:[email protected]] > Date: 2011/6/15 9:25 > Receiver: [email protected] > Subject: Re: Spring resource classpath issue > > Well, even with setting the context class loader through activator, it > didn't work out. I'm still facing the issue, not sure what else I can > do at this point. I saw the following article which confirms that > spring dm takes care of the thread context loader issue. > > http://blog.springsource.com/2008/05/02/running-spring-applications-on-osg > i-with-the-springsource-application-platform/ > > On Tue, Jun 14, 2011 at 11:40 AM, Shamik Bandopadhyay <[email protected]> > wrote: > > Thanks for the link John...my understanding was spring-extender is > > supposed to take care of setting the right classloader instead of us > > doing it explicitly in activator. It doesn't seem to be very > > efficient. I'll give it a try by writing an activator and load the > > Spring application context .... > > > > On Tue, Jun 14, 2011 at 7:25 AM, <[email protected]> wrote: > >> Take a look at this, > >> > http://www.dynamicjava.org/articles/osgi-matters/3rd-party-components-with > -osgi/11-osgi-matters/43-3rd-party-components-incompatibility-problems?tmp > l=component&print=1&page= > >> > >> Quoting Shamik Bandopadhyay <[email protected]>: > >> > >>> Well, that's the part which is puzzling. I don't see any reason why > >>> Spring would use a seperate classloader.I've even tried including the > >>> db4o file under > >>> > >>> > <input-resource>META-INF/spring/repo/test.db4o=target/classes/META-INF/spr > ing/repo/test.db4o</input-reource> > >>> , but issue remains the same... > >>> > >>> On Mon, Jun 13, 2011 at 12:42 PM, <[email protected]> wrote: > >>>> > >>>> I'm no expert but my best guess would be that spring is trying to load > >>>> the > >>>> file from the wrong classloader. If I'm reading the spring source > >>>> correctly, > >>>> it will attempt to load "classpath:META-INF/spring/repo/test.db4o" from > >>>> Thread.currentThread().getContextClassLoader() and then from > >>>> ClassUtils.class.getClassLoader() if that fails. That's my 2 cents > >>>> anyway. > >>>> > >>>> Quoting Shamik Bandopadhyay <[email protected]>: > >>>> > >>>>> The file is in the same bundle and located inside > >>>>> src/resources/META-INF/spring/repo/test.db4o. I've confirmed this in > >>>>> the generated bundle as well. > >>>>> > >>>>> On Mon, Jun 13, 2011 at 8:40 AM, Tribon Cheng <[email protected]> > >>>>> wrote: > >>>>>> > >>>>>> Resources are loaded in the same way as classes. Make sure the file is > >>>>>> under > >>>>>> the classpath, and is exported if it is used in different bundle. > >>>>>> 在 2011-6-13 下午11:25,"Shamik Bandopadhyay" <[email protected]>写 > 道: > >>>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> I'm trying to deploy a spring based bundle in osgi (fuse esb).In > >>>>>>> spring context, I'm referring to a db4o file which is inside resources > >>>>>>> folder. As per my understanding, a maven project will make sure that > >>>>>>> any file available under resources folder will be available in project > >>>>>>> classpath. I've kept the file under > >>>>>>> resources/META-INF/spring/repo/test.db4o. > >>>>>>> > >>>>>>> Here's the entry in spring context. > >>>>>>> > >>>>>>> <bean id="objectContainer" > >>>>>>> class="org.springmodules.db4o.ObjectContainerFactoryBean"> > >>>>>>> <property name="databaseFile" > >>>>>>> value="classpath:META-INF/spring/repo/test.db4o" /> > >>>>>>> </bean> > >>>>>>> > >>>>>>> Once I install and try to start the application, I'm getting the > >>>>>>> following exception. > >>>>>>> > >>>>>>> "java.io.FileNotFoundException: OSGi > >>>>>>> resource[classpath:META-INF/spring/repo/test.db4o|bnd.id > >>>>>> > >>>>>> =258|bnd.sym=taxonomydaoimplbundle] > >>>>>>> > >>>>>>> cannot be resolved to absolute file path because it does not reside > in > >>>>>>> the file system: bundle://258.0:1/META-INF/spring/repo/test.db4o" > >>>>>>> > >>>>>>> I've tried different combinations, but Felix doesn't seem to recognize > >>>>>>> this file. Any pointer will be appreciated. > >>>>>>> > >>>>>>> - Thanks > >>>>>>> > >>>>>>> > --------------------------------------------------------------------- > >>>>>>> To unsubscribe, e-mail: [email protected] > >>>>>>> For additional commands, e-mail: [email protected] > >>>>>>> > >>>>>> > >>>>> > >>>>> > --------------------------------------------------------------------- > >>>>> To unsubscribe, e-mail: [email protected] > >>>>> For additional commands, e-mail: [email protected] > >>>>> > >>>>> > >>>> > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: [email protected] > >>>> For additional commands, e-mail: [email protected] > >>>> > >>>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [email protected] > >>> For additional commands, e-mail: [email protected] > >>> > >>> > >> > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

