Version 4

    javax.ws.rs.core.Application

     

    javax.ws.rs.core.Application is a standard JAX-RS class that you may implement to provide information on your deployment.  It is simply a class the lists all JAX-RS root resources and providers.

     

    /**
     * Defines the components of a JAX-RS application and supplies additional
     * metadata. A JAX-RS application or implementation supplies a concrete
     * subclass of this abstract class.
     */
    public abstract class Application
    {
       private static final Set<Object> emptySet = Collections.emptySet();
    
       /**
        * Get a set of root resource and provider classes. The default lifecycle
        * for resource class instances is per-request. The default lifecycle for
        * providers is singleton.
        * <p></p>
        * <p>Implementations should warn about and ignore classes that do not
        * conform to the requirements of root resource or provider classes.
        * Implementations should warn about and ignore classes for which
        * {@link #getSingletons()} returns an instance. Implementations MUST
        * NOT modify the returned set.</p>
        *
        * @return a set of root resource and provider classes. Returning null
        *         is equivalent to returning an empty set.
        */
       public abstract Set<Class<?>> getClasses();
    
       /**
        * Get a set of root resource and provider instances. Fields and properties
        * of returned instances are injected with their declared dependencies
        * (see {@link Context}) by the runtime prior to use.
        * <p></p>
        * <p>Implementations should warn about and ignore classes that do not
        * conform to the requirements of root resource or provider classes.
        * Implementations should flag an error if the returned set includes
        * more than one instance of the same class. Implementations MUST
        * NOT modify the returned set.</p>
        * <p></p>
        * <p>The default implementation returns an empty set.</p>
        *
        * @return a set of root resource and provider instances. Returning null
        *         is equivalent to returning an empty set.
        */
       public Set<Object> getSingletons()
       {
          return emptySet;
       }
    
    }
    

     

    Using Application

     

    To use Application you must set a servlet context-param, javax.ws.rs.core.Application with a fully qualified class that implements Application.  For example:

     

    
       <context-param>
          <param-name>javax.ws.rs.core.Application</param-name>
          <param-value>com.mycom.MyApplicationConfig</param-value>
       </context-param>
    
    
    
    

     

    If you have this set, you should probably turn off automatic scanning as this will probably result in duplicate classes being registered.