users@jersey.java.net

Explicit registration of Jersey servlet ?

From: Arun Gupta <Arun.Gupta_at_Sun.COM>
Date: Wed, 17 Feb 2010 20:37:33 -0800

I have a webapp with the following resource:

@Path("/actor/{id}")
@RequestScoped
public class ActorResource {
     @Inject SakilaBean sakila;

     @GET
     @Produces("application/json")
     public Actor getActor(@PathParam("id") int id) {
         System.out.println("id: " + id);
         return sakila.findActorById(id);
     }
}

This is deployed as simplewebapp.war on GlassFish v3.

http://localhost:8080/simplewebapp/actor/4

gives a 404. However adding:

<servlet>
        <servlet-name>Jersey Web Application</servlet-name>
 
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
      </servlet>

      <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/sakila/*</url-pattern>
      </servlet-mapping>

to web.xml, then the resource is available at:

http://localhost:8080/simplewebapp/sakila/actor/4.

Why Jersey servlet need to be registered explicitly ?

-Arun
-- 
Need Application Server ? Download from http://glassfish.org
Blog: http://blogs.sun.com/arungupta