users@jersey.java.net

Re: [Jersey] Explicit registration of Jersey servlet ?

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Thu, 18 Feb 2010 09:10:12 +0100

On Feb 18, 2010, at 5:37 AM, Arun Gupta wrote:

> 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
>

I am not sure what a "simplewebapp.war" is, but i think i can guess it
is one that has no web.xml?

Assuming that is the case you need to include the following:

@ApplicationPath("/sakila")
public class MyApplication extends Application {
}


An implementation of Application is required for inform Jersey what
root resource and provider classes are registered. If you do not
override any of the methods then all classes annotationed with @Path
and @Provider will be included.

Paul.


> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>