It's provided by the Bundle "jersey server - servicemix bundle 
(1.1.5.ea-SNAPSHOT)", so it should be available. As I said, other classes from 
exactly the same package are loaded just fine.

Daniel

Am 15.12.2009 um 15:32 schrieb Miguel:

> which bundle is providing com.sun.jersey.api.core ?
> 
> I don't know if there is an osgi bundle which provides it, otherwise you must 
> create one and export all the packages of this library (dont forget to set 
> the bundle class path)
> 
> 
> Miguel
> Sent from Madrid, Spain 
> 
> On Tue, Dec 15, 2009 at 3:23 PM, Daniel Bimschas <[email protected]> wrote:
> Forgot to attach the project ;-)
> 
> Cheers,
> Daniel
> 
> 
> 
> Am 15.12.2009 um 13:12 schrieb Daniel Bimschas:
> 
> > Hi list,
> >
> > I'm trying to help on OSGifying the JAX-RS reference implementation Jersey. 
> > Based on work done by Richard Wallace there was a branch opened (see  [1]). 
> > I tried to replay what is done by the unit tests provided in the 
> > osgi/servicemix/tests project by manual means, i.e. installing the 
> > individual jersey bundles and its dependencies manually into Equinox/Felix 
> > and writing a simple bundle that tries to deploy a Jersey servlet using the 
> > Grizzly servlet container (which is something that is done in the test 
> > using Pax Exam).
> >
> > My bundle activator implementation does not much more than this:
> >
> > // ...
> > GrizzlyWebServer gws = new GrizzlyWebServer(8080);
> >
> > ServletAdapter jerseyAdapter = new ServletAdapter();
> > jerseyAdapter.addInitParameter("com.sun.jersey.config.property.classnames", 
> > "com.sun.jersey.osgi.tests.SimpleResource");
> > jerseyAdapter.addInitParameter("com.sun.jersey.config.property.resourceConfigClass",
> >  "com.sun.jersey.api.core.ClassNamesResourceConfig");
> > jerseyAdapter.setContextPath("/jersey");
> > jerseyAdapter.setServletInstance(new ServletContainer());
> >
> > gws.addGrizzlyAdapter(jerseyAdapter, new String[] { "/jersey" });
> > gws.start();
> >
> > // ...
> >
> > which starts up fine. All bundles are resolved and can be started:
> >
> > [  66] [Active     ] jsr311-api - servicemix bundle (1.1.5.ea-SNAPSHOT)
> > [  67] [Active     ] jersey core - servicemix bundle (1.1.5.ea-SNAPSHOT)
> > [  68] [Active     ] jersey server - servicemix bundle (1.1.5.ea-SNAPSHOT)
> > [  69] [Active     ] jersey client - servicemix bundle (1.1.5.ea-SNAPSHOT)
> > [  70] [Active     ] jersey json - servicemix bundle (1.1.5.ea-SNAPSHOT)
> > [  71] [Active     ] jettison (1.1)
> > [  72] [Active     ] Jackson JSON processor (1.1.1)
> > [  73] [Resolved   ] grizzly-servlet-webserver (1.9.8)
> > [  74] [Active     ] ASM all classes (3.1)
> > [  75] [Active     ] JerseyTest (0.0.1)
> > [  76] [Active     ] Servlet API Bundle (2.5.0.v200806031605)
> >
> > Now, if I browse to http://localhost:8080/jersey the following exception is 
> > thrown:
> >
> > javax.servlet.ServletException: Resource configuration class, 
> > com.sun.jersey.api.core.ClassNamesResourceConfig, could not be loaded
> >       at 
> > com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:688)
> >       at 
> > com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:620)
> >       at 
> > com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:200)
> >       at 
> > com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:307)
> >       at 
> > com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:470)
> >       at javax.servlet.GenericServlet.init(GenericServlet.java:241)
> >       at 
> > com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:327)
> >       at 
> > com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:268)
> >       at 
> > com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:165)
> >       at 
> > com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:185)
> >       at 
> > com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:165)
> >       at 
> > com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:659)
> >       at 
> > com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:577)
> >       at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:829)
> >       at 
> > com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:162)
> >       at 
> > com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:136)
> >       at 
> > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
> >       at 
> > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
> >       at 
> > com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
> >       at 
> > com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
> >       at 
> > com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
> >       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >       at 
> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >       at 
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >       at java.lang.Thread.run(Thread.java:637)
> > Caused by: java.lang.ClassNotFoundException: 
> > com.sun.jersey.api.core.ClassNamesResourceConfig
> >       at 
> > org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:726)
> >       at 
> > org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:60)
> >       at 
> > org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1631)
> >       at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
> >       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
> >       at java.lang.Class.forName0(Native Method)
> >       at java.lang.Class.forName(Class.java:169)
> >       at 
> > com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:220)
> >       at 
> > com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:200)
> >       at 
> > com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:653)
> >       ... 25 more
> >
> > What is really weird about that, is that com.sun.jersey.api.core is 
> > exported by the server bundle and obviously other classes from that bundle 
> > and package were loaded successfully, too. Using the tracing-feature of 
> > Equinox I checked the loader output and it confirms that other classes from 
> > the same bundle and package were loaded. The same behaviour arises with 
> > Felix.
> >
> > Does somebody have a clue how this is possible? And what could be the 
> > solution to it?
> >
> > Kind regards,
> > Daniel Bimschas
> >
> >
> > _______________________________________________
> > OSGi Developer Mail List
> > [email protected]
> > https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> ----------------------
> Daniel Bimschas
> Fleischhauer Strafle 45
> 23552 Lübeck
> [email protected]
> ----------------------
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev


_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to