users@glassfish.java.net

About jersey osgi-http-service sample in glassfish

From: Tang Yong <tangyong_at_cn.fujitsu.com>
Date: Mon, 04 Feb 2013 16:55:34 +0900

Hi Sahoo, Jersey Team

I have a question about jersey osgi-http-service sample[1].

[1]: https://github.com/jersey/jersey/tree/master/examples/osgi-http-service

After starting glassfish domain, if using "asadmin deploy --type=osgi
..." to deploy the jersey osgi sample bundle, anything is OK.

However, if I put the jersey osgi sample bundle into
glassfish/modules/autostart/ , then after starting glassfish domain, the
following exception happened in the server.log and rest endpoint is
created failed,

[#|2013-02-04T16:45:37.062+0900|INFO|glassfish
4.0|javax.enterprise.logging.stdout|_ThreadID=74;_ThreadName=pool-17-thread-1;_TimeMillis=1359963937062;_LevelValue=800;|ERROR:
Bundle org.glassfish.jersey.examples.osgi-http-service.bundle [272]
EventDispatcher: Error during dispatch. (java.lang.RuntimeException:
javax.servlet.ServletException: javax.servlet.ServletException: [failed
to localize]
resource.config.unable.to.load(org.glassfish.jersey.examples.osgihttpservice.JerseyApplication))|#]

[#|2013-02-04T16:45:37.078+0900|SEVERE|glassfish
4.0|javax.enterprise.logging.stderr|_ThreadID=74;_ThreadName=pool-17-thread-1;_TimeMillis=1359963937078;_LevelValue=1000;|java.lang.RuntimeException:
javax.servlet.ServletException: javax.servlet.ServletException: [failed
to localize]
resource.config.unable.to.load(org.glassfish.jersey.examples.osgihttpservice.JerseyApplication)
        at
org.glassfish.jersey.examples.osgihttpservice.Activator.registerServlets(Activator.java:109)
        at
org.glassfish.jersey.examples.osgihttpservice.Activator.access$100(Activator.java:60)
        at
org.glassfish.jersey.examples.osgihttpservice.Activator$1.addingService(Activator.java:78)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:980)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:906)
        at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262)
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:234)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:941)
        at
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
        at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
        at
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
        at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4260)
        at org.apache.felix.framework.Felix.registerService(Felix.java:3275)
        at
org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)
        at
org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:320)
        at org.glassfish.osgihttp.Activator.doActualWork(Activator.java:137)
        at org.glassfish.osgihttp.Activator.access$300(Activator.java:84)
        at
org.glassfish.osgihttp.Activator$OSGiHtttpExtender.start(Activator.java:332)
        at
org.glassfish.osgijavaeebase.ExtenderManager$ExtenderTracker.addingService(ExtenderManager.java:144)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:980)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:906)
        at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262)
        at
org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:185)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:348)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:283)
        at
org.glassfish.osgijavaeebase.ExtenderManager.startExtenders(ExtenderManager.java:109)
        at
org.glassfish.osgijavaeebase.ExtenderManager.access$100(ExtenderManager.java:67)
        at
org.glassfish.osgijavaeebase.ExtenderManager$GlassFishServerTracker$1.run(ExtenderManager.java:192)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: javax.servlet.ServletException:
javax.servlet.ServletException: [failed to localize]
resource.config.unable.to.load(org.glassfish.jersey.examples.osgihttpservice.JerseyApplication)
        at
org.glassfish.osgihttp.GlassFishHttpService.registerServlet(GlassFishHttpService.java:105)
        at
org.glassfish.osgihttp.HttpServiceWrapper.registerServlet(HttpServiceWrapper.java:93)
        at
org.glassfish.jersey.examples.osgihttpservice.Activator.rawRegisterServlets(Activator.java:119)
        at
org.glassfish.jersey.examples.osgihttpservice.Activator.registerServlets(Activator.java:105)
        ... 33 more
Caused by: javax.servlet.ServletException: [failed to localize]
resource.config.unable.to.load(org.glassfish.jersey.examples.osgihttpservice.JerseyApplication)
        at
org.glassfish.jersey.servlet.WebComponent.createResourceConfig(WebComponent.java:378)
        at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:251)
        at
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:144)
        at
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:326)
        at javax.servlet.GenericServlet.init(GenericServlet.java:244)
        at
org.glassfish.osgihttp.OSGiServletWrapper.initializeServlet(OSGiServletWrapper.java:92)
        at
org.glassfish.osgihttp.GlassFishHttpService.registerServlet(GlassFishHttpService.java:103)
        ... 36 more
Caused by: java.lang.ClassNotFoundException:
org.glassfish.jersey.examples.osgihttpservice.JerseyApplication not
found by org.glassfish.jersey.core.jersey-common [165]
        at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
        at
org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
        at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at
org.glassfish.jersey.internal.util.ReflectionHelper.classForNameWithException(ReflectionHelper.java:284)
        at
org.glassfish.jersey.internal.util.ReflectionHelper.classForNameWithException(ReflectionHelper.java:262)
        at
org.glassfish.jersey.servlet.WebComponent.createResourceConfig(WebComponent.java:368)
        ... 42 more
|#]

From the above exception, this should belong to class loader issue.

Thanks
--Tang