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

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
>

Reply via email to