2011/10/31 Gareth Collins <[email protected]>: > Hello Aki, > > You have the Pax URL classpath bundle installed?: > > http://search.maven.org/#artifactdetails|org.ops4j.pax.url|pax-url-classpath|1.3.5|bundle
Hi Gareth, thanks. This was the missing piece. After installing this bundle, it's working fine. Thanks. regards, aki > > regards, > Gareth > > On Mon, Oct 31, 2011 at 12:57 PM, Aki Yoshida <[email protected]> wrote: >> Hi, >> I am new to blueprint and encountered this problem while trying to >> update a spring bean configuration into its equivalent blueprint >> version. The problem is that I cannot set a bean property of URL type >> with a classpath URL value. >> >> This bean has a URL attribute "location" and has method >> setLocation(URL location). >> >> In spring, I can simply pass a classpath URL value to this attribute as in >> >> <bean ...> >> <property name="location" value="classpath:path/file.txt" /> >> ... >> </bean> >> >> In this case, I can see this value gets converted into >> "bundle://146.0:1/path/file.txt" (on karaf) and the location attribute >> of my bean gets set with this URL value. >> >> In blueprint, this value conversion is not taking place and it is >> resulting in the following exception in the log: >> >> Caused by: java.net.MalformedURLException: Unknown protocol: classpath >> at java.net.URL.<init>(URL.java:601)[:1.6.0_24] >> at java.net.URL.<init>(URL.java:464)[:1.6.0_24] >> at java.net.URL.<init>(URL.java:413)[:1.6.0_24] >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> Method)[:1.6.0_24] >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_24] >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_24] >> at >> java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:1.6.0_24] >> at >> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:258)[9:org.apache.aries.blueprint:0.3.1] >> at >> org.apache.aries.blueprint.container.AggregateConverter.createObject(AggregateConverter.java:307)[9:org.apache.aries.blueprint:0.3.1] >> ... 24 more >> 2011-10-31 13:20:44,516 | DEBUG | rint Extender: 3 | >> BlueprintEventDispatcher | ntainer.BlueprintEventDispatcher 123 | >> 9 - org.apache.aries.blueprint - 0.3.1 | Sending blueprint container >> event BlueprintEvent[type=FAILURE, exception=Error setting property: >> PropertyDescriptor <name: location, getter: public java.net.URL >> tmp.test.osgi.blueprint.Client01.getLocation(), setter: [public void >> tmp.test.osgi.blueprint.Client01.setLocation(java.net.URL)]] for >> bundle tmp.test-bp-01 >> >> >> Could someone tell me if I am missing something in my configuration or >> if this is a known limitation? >> >> Regards, Aki >> >
