org.apache.cxf.jaxrs
Class JAXRSServerFactoryBean

java.lang.Object
  extended by org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
      extended by org.apache.cxf.endpoint.AbstractEndpointFactory
          extended by org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean
              extended by org.apache.cxf.jaxrs.JAXRSServerFactoryBean
All Implemented Interfaces:
InterceptorProvider
Direct Known Subclasses:
JAXRSServerFactoryBeanDefinitionParser.SpringJAXRSServerFactoryBean

public class JAXRSServerFactoryBean
extends AbstractJAXRSFactoryBean

Bean to help easily create Server endpoints for JAX-RS. Example:

 JAXRSServerFactoryBean sf = JAXRSServerFactoryBean();
 sf.setResourceClasses(Book.class);
 sf.setBindingId(JAXRSBindingFactory.JAXRS_BINDING_ID);
 sf.setAddress("http://localhost:9080/");
 Server myServer = sf.create();
 
This will start a server for you and register it with the ServerManager. Note you should explicitly close the Server created when finished with it:
 myServer.close();
 myServer.destroy(); // closes first if close() not previously called
 


Field Summary
protected  Map<Class,ResourceProvider> resourceProviders
           
 
Fields inherited from class org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean
entityProviders, schemaLocations, serviceFactory
 
Fields inherited from class org.apache.cxf.endpoint.AbstractEndpointFactory
address, bindingConfig, bindingFactory, bindingId, bus, conduitSelector, dataBinding, destinationFactory, endpointName, endpointReference, features, properties, publishedEndpointUrl, serviceName, transportId
 
Constructor Summary
JAXRSServerFactoryBean()
           
JAXRSServerFactoryBean(JAXRSServiceFactoryBean sf)
           
 
Method Summary
protected  void applyFeatures()
           
 Server create()
          Creates the JAX-RS Server instance
protected  Invoker createInvoker()
           
 List<Class<?>> getResourceClasses()
           
 void init()
          Creates the JAX-RS Server instance
 void setApplication(javax.ws.rs.core.Application app)
          Saves the reference to the JAX-RS Application
 void setExtensionMappings(Map<Object,Object> extMaps)
          Sets the extension mappings, example, 'xml' is the key and 'text/xml' is the value.
 void setInvoker(Invoker invoker)
          Sets the custom Invoker which can be used to customize the way the default JAX-RS invoker calls on the service bean
 void setLanguageMappings(Map<Object,Object> lMaps)
          Sets the language mappings, example, 'en' is the key and 'en-gb' is the value.
 void setResourceClasses(Class... classes)
          Sets one or more root resource classes
 void setResourceClasses(List<Class> classes)
          Sets one or more root resource classes
 void setResourceComparator(ResourceComparator rcomp)
          Resource comparator which may be used to customize the way a root resource or resource method is selected
 void setResourceProvider(Class c, ResourceProvider rp)
          Sets the provider managing the life-cycle of the given resource class
 void setResourceProvider(ResourceProvider rp)
          Sets the provider managing the life-cycle of the resource class
 void setResourceProviders(List<ResourceProvider> rps)
          Sets the list of providers managing the life-cycle of the resource classes
 void setServiceBean(Object bean)
          Sets the single resource bean.
 void setServiceBeanObjects(Object... beans)
          Sets the resource beans.
 void setServiceBeans(List<Object> beans)
          Sets the resource beans.
 void setServiceClass(Class clazz)
          This method is used primarily by Spring handler processing the jaxrs:server/@serviceClass attribute.
 void setStart(boolean start)
          Determines whether Services are automatically started during the create() call.
 void setStaticSubresourceResolution(boolean enableStatic)
          By default the subresources are resolved dynamically, mainly due to the JAX-RS specification allowing Objects being returned from the subresource locators.
 
Methods inherited from class org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean
checkResources, createBindingInfo, createEndpoint, createEndpointInfo, getBus, getProviders, getServiceFactory, setBus, setDataBindingProvider, setModelBeans, setModelBeans, setModelBeansWithServiceClass, setModelRef, setModelRefWithServiceClass, setProvider, setProviders, setSchemaLocation, setSchemaLocations, setServiceFactory, setupFactory
 
Methods inherited from class org.apache.cxf.endpoint.AbstractEndpointFactory
checkPrivateEndpoint, getAddress, getBindingConfig, getBindingFactory, getBindingId, getConduitSelector, getDataBinding, getDestinationFactory, getEndpointName, getFeatures, getProperties, getProperties, getPublishedEndpointUrl, getServiceName, getTransportId, initializeAnnotationInterceptors, initializeAnnotationInterceptors, initializeAnnotationInterceptors, setAddress, setBindingConfig, setBindingFactory, setBindingId, setConduitSelector, setDataBinding, setDestinationFactory, setEndpointName, setEndpointReference, setFeatures, setProperties, setPublishedEndpointUrl, setServiceName, setTransportId
 
Methods inherited from class org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
getInFaultInterceptors, getInInterceptors, getOutFaultInterceptors, getOutInterceptors, setInFaultInterceptors, setInInterceptors, setOutFaultInterceptors, setOutInterceptors
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

resourceProviders

protected Map<Class,ResourceProvider> resourceProviders
Constructor Detail

JAXRSServerFactoryBean

public JAXRSServerFactoryBean()

JAXRSServerFactoryBean

public JAXRSServerFactoryBean(JAXRSServiceFactoryBean sf)
Method Detail

setApplication

public void setApplication(javax.ws.rs.core.Application app)
Saves the reference to the JAX-RS Application

Parameters:
app -

setResourceComparator

public void setResourceComparator(ResourceComparator rcomp)
Resource comparator which may be used to customize the way a root resource or resource method is selected

Parameters:
rcomp - comparator

setStaticSubresourceResolution

public void setStaticSubresourceResolution(boolean enableStatic)
By default the subresources are resolved dynamically, mainly due to the JAX-RS specification allowing Objects being returned from the subresource locators. Setting this property to true enables the runtime to do the early resolution.

Parameters:
enableStatic - enabling the static resolution if set to true

init

public void init()
Creates the JAX-RS Server instance


create

public Server create()
Creates the JAX-RS Server instance

Returns:
the server

applyFeatures

protected void applyFeatures()

createInvoker

protected Invoker createInvoker()

setLanguageMappings

public void setLanguageMappings(Map<Object,Object> lMaps)
Sets the language mappings, example, 'en' is the key and 'en-gb' is the value.

Parameters:
lMaps - the language mappings

setExtensionMappings

public void setExtensionMappings(Map<Object,Object> extMaps)
Sets the extension mappings, example, 'xml' is the key and 'text/xml' is the value.

Parameters:
lMaps - the extension mappings

getResourceClasses

public List<Class<?>> getResourceClasses()

setServiceClass

public void setServiceClass(Class clazz)
This method is used primarily by Spring handler processing the jaxrs:server/@serviceClass attribute. It delegates to setResourceClasses method accepting the array of Class parameters.

Parameters:
clazz - the service/resource class

setResourceClasses

public void setResourceClasses(List<Class> classes)
Sets one or more root resource classes

Parameters:
classes - the list of resource classes

setResourceClasses

public void setResourceClasses(Class... classes)
Sets one or more root resource classes

Parameters:
classes - the array of resource classes

setServiceBeanObjects

public void setServiceBeanObjects(Object... beans)
Sets the resource beans. If this is set then the JAX-RS runtime will not be responsible for the life-cycle of resource classes.

Parameters:
beans - the array of resource instances

setServiceBean

public void setServiceBean(Object bean)
Sets the single resource bean. If this is set then the JAX-RS runtime will not be responsible for the life-cycle of resource classes. Please avoid setting the resource class of this bean explicitly, the runtime will determine it itself.

Parameters:
bean - resource instance

setServiceBeans

public void setServiceBeans(List<Object> beans)
Sets the resource beans. If this is set then the JAX-RS runtime will not be responsible for the life-cycle of resource classes.

Parameters:
beans - the list of resource instances

setResourceProvider

public void setResourceProvider(Class c,
                                ResourceProvider rp)
Sets the provider managing the life-cycle of the given resource class
 Example:
  setResourceProvider(BookStoreInterface.class, new SingletonResourceProvider(new BookStore()));
 

Parameters:
c - resource class
rp - resource provider

setResourceProvider

public void setResourceProvider(ResourceProvider rp)
Sets the provider managing the life-cycle of the resource class
 Example:
  setResourceProvider(new SingletonResourceProvider(new BookStore()));
 

Parameters:
rp - resource provider

setResourceProviders

public void setResourceProviders(List<ResourceProvider> rps)
Sets the list of providers managing the life-cycle of the resource classes

Parameters:
rps - resource providers

setInvoker

public void setInvoker(Invoker invoker)
Sets the custom Invoker which can be used to customize the way the default JAX-RS invoker calls on the service bean

Parameters:
invoker -

setStart

public void setStart(boolean start)
Determines whether Services are automatically started during the create() call. Default is true. If false will need to call start() method on Server to activate it.

Parameters:
start - Whether (true) or not (false) to start the Server during Server creation.


Apache CXF