Package com.sun.jersey.spi.container.servlet

Provides support for servlet-based and filter-based Web applications.

See: Description

Package com.sun.jersey.spi.container.servlet Description

Provides support for servlet-based and filter-based Web applications.

Web application support is enabled by referencing the servlet ServletContainer in the web.xml.

For example, the following will deploy Jersey and automatically register any root resource or provider classes present in the directory "/WEB-INF/classes" or jar files present in the directory "/WEB-INF/lib":

   <web-app>
     <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>/*</url-pattern>
     </servlet-mapping>
   </web-app>
 

A deployment approach, that is more portable with respect to maven and application servers, is to declare the package names where root resource and provider classes reside. For example, the following will deploy Jersey and automatically register any root resource or provider classes present in the package "managed", or any sub-packages.

   <web-app>
     <servlet>
       <servlet-name>Jersey Web Application</servlet-name>
       <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
       <init-param>
           <param-name>com.sun.jersey.config.property.packages</param-name>
           <param-value>managed</param-value>
       </init-param>
     </servlet>
     <servlet-mapping>
       <servlet-name>Jersey Web Application</servlet-name>
       <url-pattern>/*</url-pattern>
     </servlet-mapping>
   </web-app>
 
The deployment approach that is portable accross JAX-RS implementations is to register an implementation of Application. For example given an implementation as follows:
   package com.foo;

   import ...
 
   public class MyApplicaton extends Application {
       public Set<Class<?>> getClasses() {
           Set<Class<?>> s = new HashSet<Class<?>>();
           s.add(HelloWorldResource.class);
           return s;
       }
   }
 
then that implementation can be registered as follows:
   <web-app>
     <servlet>
       <servlet-name>Jersey Web Application</servlet-name>
       <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
       <init-param>
           <param-name>javax.ws.rs.Application</param-name>
           <param-value>com.foo.MyApplication</param-value>
       </init-param>
     </servlet>
     <servlet-mapping>
       <servlet-name>Jersey Web Application</servlet-name>
       <url-pattern>/*</url-pattern>
     </servlet-mapping>
   </web-app>
 
It is possible to combine package-based registration and Application registered by extending PackagesResourceConfig and registering the extended class, for example:
   public class MyApplication extends PackagesResourceConfig {
       public MyApplication() {
           super("org.foo.rest;org.bar.rest");
       }
   }
 
The above examples apply to Servlet-based configurations but they equally applicable to Filter-based configurations. For example, the following presents the same package-based configuration as above but utilizing a filter:
   <web-app>
     <filter>
       <filter-name>Jersey Web Application</filter-name>
       <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
       <init-param>
           <param-name>com.sun.jersey.config.property.packages</param-name>
           <param-value>managed</param-value>
       </init-param>
     </filter>
     <filter-mapping>
       <filter-name>Jersey Web Application</filter-name>
       <url-pattern>/*</url-pattern>
     </filter-mapping>
   </web-app>
 

Copyright © 2016 Oracle Corporation. All Rights Reserved.