2009/2/4 Vinicius Carvalho <[email protected]>

> Hello there! Rob following your instructions when we try to load a
> resource:
>
> httpService.registerResource("/OSLApplication.html","/OSLApplication.html",
> webcontext); //This is the GWT entry-point
>
> And when the method from webcontext is finally called when the user points
> to localhost:8080/myapp/OSLApplication.html:
>
> public URL getResource(String name) {
>         // TODO Auto-generated method stub
>        return GWTService.class.getResource("/resources/www/"+baseURI+name);
>    }
>
> We are always getting null
>
> We tried:
>
> "resources/www/"+baseURI+name
>
> And also did not work
>
> We tried using
> GWTService.class.getClassLoader.getResource...
> even
> Thread.currentThread().getContextClassLoader().getResource
>

Hi Vinicius,

have you tried printing out:

  GWTService.class.getClassLoader()   and
Thread.currentThread().getContextClassLoader()

to see if these match the classloader of the bundle with the resource?
( most OSGi frameworks put the bundle id in the classloader name )

if you're using the same classloader as the bundle with the resource
then it should find it (just like a normal jar) - otherwise there are OSGi
APIs that can load resources from Bundle instances, for situations
where you don't know what the bundle classloader is but you know
the Bundle (note that you can't get the classloader instance directly
from the Bundle, as that would be too tempting!)

if you want to share a resource with other bundles then you need to add
exports and imports, just as with classes - if you have several bundles
providing resources in the same package then you might want to look
at the extender pattern, rather than attempt to merge these packages
together (because by default OSGi doesn't merge package contents -
instead it picks one bundle to be the 'exporter' and uses the package
contents from this bundle - to merge package contents you need to
use advanced techniques like Require-Bundle...)

[ http://www.osgi.org/blog/2007/02/osgi-extender-model.html ]

HTH

It always returns null.
>
> The jar is packaged:
>
> org/
> resources/
> META-INF
>
> But it seems that resources/ is not being loaded by the class loader, do we
> need any special directive on the MANIFEST?
>
> Regards
> >
>

-- 
Cheers, Stuart

Reply via email to