[Jersey] Re: Explicitly declare the root resource and provider classes - not working for provider class

From: Farrukh Najmi <>
Date: Wed, 29 Feb 2012 09:02:10 -0500

I was using a org.glassfish.grizzly.servlet.ServletHandler to create the
HttpServer as follows:

import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.grizzly.http.server.ServerConfiguration;
import org.glassfish.grizzly.http.server.StaticHttpHandler;
import org.glassfish.grizzly.servlet.ServletHandler;

URI uri = ...
ServletHandler servletHandler = new ServletHandler();
HttpServer server = GrizzlyServerFactory.createHttpServer(uri,
servletHandler, false);

So I tried the following to use jersey ContainerFactory to create my
handler so it takes into account my ResourceConfig (so I can explicitly
set root resource and provider classes so I can run my jersey server
inside a webstart / jnlp launched app):

ServletHandler servletHandler =
ContainerFactory.createContainer(ServletHandler.class, resourceConfig);
HttpServer server = GrizzlyServerFactory.createHttpServer(uri,
servletHandler, false);

The problem I get is:

No container provider supports the type class

I am on my 5th day trying to get an app with a jersey server endpoint
that worked fine standalone to work in javawebstart environment.

I feel I am close but at the end of my knowledge of jersey to get this
seemingly simple problem solved:

How to explicitly declare the root resource and provider classes when
using a ServletHandler in creating the Grizzly server.

Any other ideas from the jesrey dev team?

On 02/28/2012 08:04 PM, Glen Mazza wrote:
> Just more detective work, basically see what Jersey does
> behind-the-scenes. Go to grepcode on "GrizzlyServerFactory" -- line
> 75 in the I linked to below. You'll see what Jersey does:
> I see an HttpHandler in that method, so I'll leave the rest to you as
> an exercise. :)
> Glen
> On 02/28/2012 07:36 PM, Farrukh Najmi wrote:
>> On 02/28/2012 01:22 PM, Glen Mazza wrote:
>>> On 02/28/2012 01:04 PM, Farrukh Najmi wrote:
>>>> BTW, when I set breakpoints inside my getClasses() and
>>>> getSingletons() methods of my "class HubSubscriber extends
>>>>" I find they are never called!
>>> Did you remember to wire your Application subclass in like here:
>>> (lines 72-75)? Also, I'd try a System.out.println() in those two
>>> methods to confirm they're not being called -- it could be the
>>> debugger is wrong for some reason.
>> I did not do that! So that explains why the getClasses() and
>> getSingletons() methods are not being called.
>> Now here is my problem. I am using the following method
>> <>
>> to create my HttpServer. I need to specify an HttpHandler. So how do
>> I pass it a ResourceConfig instance? I think there is a way to create
>> an HttpHandler with a specified ResourceConfig but I do not know how
>> to do that. Any advice?
>> Thanks again for your kind help.

Farrukh Najmi