Package org.apache.cxf.jaxrs
Class JAXRSServerFactoryBean
- java.lang.Object
-
- org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
-
- org.apache.cxf.endpoint.AbstractEndpointFactory
-
- org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean
-
- org.apache.cxf.jaxrs.JAXRSServerFactoryBean
-
- All Implemented Interfaces:
InterceptorProvider
- Direct Known Subclasses:
JAXRSServerFactoryBeanDefinitionParser.BPJAXRSServerFactoryBean,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 theServercreated when finished with it:myServer.close(); myServer.destroy(); // closes first if close() not previously called
-
-
Field Summary
Fields Modifier and Type Field Description 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
Constructors Constructor Description JAXRSServerFactoryBean()JAXRSServerFactoryBean(JAXRSServiceFactoryBean sf)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidapplyBusFeatures(Bus bus)protected voidapplyFeatures()Servercreate()Creates the JAX-RS Server instanceprotected InvokercreateInvoker()StringgetDocLocation()Get the reference to the document (WADL, etc) describing the endpointList<Class<?>>getResourceClasses()ServergetServer()voidinit()Creates the JAX-RS Server instanceprotected voidinjectContexts(ServerProviderFactory factory, ApplicationInfo fallback)voidsetApplication(javax.ws.rs.core.Application app)Saves the reference to the JAX-RSApplicationvoidsetApplicationInfo(ApplicationInfo provider)protected voidsetBeanInfo(ServerProviderFactory factory)protected voidsetDefaultResourceProvider(ClassResourceInfo cri)voidsetDocLocation(String docLocation)Set the reference to the document (WADL, etc) describing the endpointvoidsetExtensionMappings(Map<Object,Object> extMaps)Sets the extension mappings, example, 'xml' is the key and 'text/xml' is the value.voidsetInvoker(Invoker invoker)Sets the custom Invoker which can be used to customize the way the default JAX-RS invoker calls on the service beanvoidsetLanguageMappings(Map<Object,Object> lMaps)Sets the language mappings, example, 'en' is the key and 'en-gb' is the value.voidsetResourceClasses(Class<?>... classes)Sets one or more root resource classesvoidsetResourceClasses(List<Class<?>> classes)Sets one or more root resource classesvoidsetResourceComparator(ResourceComparator rcomp)Resource comparator which may be used to customize the way a root resource or resource method is selectedvoidsetResourceProvider(Class<?> c, ResourceProvider rp)Sets the provider managing the life-cycle of the given resource classvoidsetResourceProvider(ResourceProvider rp)Sets the provider managing the life-cycle of the resource classvoidsetResourceProviders(List<ResourceProvider> rps)Sets the list of providers managing the life-cycle of the resource classesvoidsetServiceBean(Object bean)Sets the single resource bean.voidsetServiceBeanObjects(Object... beans)Sets the resource beans.voidsetServiceBeans(List<Object> beans)Sets the resource beans.voidsetServiceClass(Class<?> clazz)This method is used primarily by Spring handler processing the jaxrs:server/@serviceClass attribute.voidsetStart(boolean start)Determines whether Services are automatically started during the create() call.voidsetStaticSubresourceResolution(boolean enableStatic)By default the subresources are resolved dynamically, mainly due to the JAX-RS specification allowing Objects being returned from the subresource locators.protected ServerProviderFactorysetupFactory(Endpoint ep)protected voidupdateClassResourceProviders(Endpoint ep)-
Methods inherited from class org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean
checkResources, createBindingInfo, createEndpoint, createEndpointInfo, getBus, getProviders, getServiceFactory, isValidClassResourceInfo, setBus, setDataBindingProvider, setModelBeans, setModelBeans, setModelBeansWithServiceClass, setModelRef, setModelRefWithServiceClass, setProvider, setProviderComparator, setProviders, setSchemaLocation, setSchemaLocations, setServiceFactory, setServiceName, setupFactory
-
Methods inherited from class org.apache.cxf.endpoint.AbstractEndpointFactory
addToBeans, checkPrivateEndpoint, getAddress, getBindingConfig, getBindingFactory, getBindingId, getBus, 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, setTransportId
-
Methods inherited from class org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
getInFaultInterceptors, getInInterceptors, getOutFaultInterceptors, getOutInterceptors, setInFaultInterceptors, setInInterceptors, setOutFaultInterceptors, setOutInterceptors
-
-
-
-
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-RSApplication- Parameters:
app-
-
setApplicationInfo
public void setApplicationInfo(ApplicationInfo provider)
-
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
-
getServer
public Server getServer()
-
setupFactory
protected ServerProviderFactory setupFactory(Endpoint ep)
-
setBeanInfo
protected void setBeanInfo(ServerProviderFactory factory)
-
applyBusFeatures
protected void applyBusFeatures(Bus bus)
-
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:
extMaps- the extension mappings
-
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 classExample: setResourceProvider(BookStoreInterface.class, new SingletonResourceProvider(new BookStore()));
- Parameters:
c- resource classrp- resource provider
-
setResourceProvider
public void setResourceProvider(ResourceProvider rp)
Sets the provider managing the life-cycle of the resource classExample: 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.
-
injectContexts
protected void injectContexts(ServerProviderFactory factory, ApplicationInfo fallback)
-
updateClassResourceProviders
protected void updateClassResourceProviders(Endpoint ep)
-
setDefaultResourceProvider
protected void setDefaultResourceProvider(ClassResourceInfo cri)
-
setDocLocation
public void setDocLocation(String docLocation)
Set the reference to the document (WADL, etc) describing the endpoint- Parameters:
docLocation- document location
-
getDocLocation
public String getDocLocation()
Get the reference to the document (WADL, etc) describing the endpoint- Returns:
- document location
-
-