Author: buildbot
Date: Fri Dec 14 23:48:02 2012
New Revision: 842447
Log:
Production update by buildbot for cxf
Modified:
websites/production/cxf/content/cache/docs.pageCache
websites/production/cxf/content/docs/jaxrs-services-configuration.html
Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/cxf/content/docs/jaxrs-services-configuration.html
==============================================================================
--- websites/production/cxf/content/docs/jaxrs-services-configuration.html
(original)
+++ websites/production/cxf/content/docs/jaxrs-services-configuration.html Fri
Dec 14 23:48:02 2012
@@ -124,7 +124,7 @@ Apache CXF -- JAXRS Services Configurati
<div id="ConfluenceContent"><p><span style="font-size:2em;font-weight:bold">
JAX-RS : Services Configuration </span></p>
<div>
-<ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesprogrammatically">Configuring
JAX-RS services programmatically</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-OSGI">OSGI</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Blueprint">Blueprint</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-Spring">Spring</a></li></ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSendpointsprogrammaticallywithoutSpring">Configuring
JAX-RS endpoints programmatically without Spring</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesincontainerwithSpringconfigurationfile.">Configuring
JAX-RS services in container with Spring configuration
file.</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-web.xml">web.xml</a></li><ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-UsingSpringContextLoaderListener">Using
Spring ContextLoaderListener</a></
li><li><a shape="rect"
href="#JAXRSServicesConfiguration-UsingCXFServletinitparameters">Using
CXFServlet init parameters</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-beans.xml">beans.xml</a></li></ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesusingexplicitbeanconfiguration">Configuring
JAX-RS services using explicit bean configuration</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-SpringAOP">Spring AOP</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesincontainerwithoutSpring">Configuring
JAX-RS services in container without Spring</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-AttachingJAXRSendpointstoanexistingJettyserver">Attaching
JAXRS endpoints to an existing Jetty server</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-JAXRSRuntimeDelegateandApplications">JAX-RS
RuntimeDelegate and Applications</a></li><li><a shape="rect" hre
f="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesprogrammaticallywithSpringconfigurationfile.">Configuring
JAX-RS services programmatically with Spring configuration
file.</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Lifecyclemanagement">Lifecycle
management</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-FromSpring">From Spring</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-WithCXFNonSpringJaxrsServlet">With
CXFNonSpringJaxrsServlet</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Programmatically">Programmatically</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-PostConstructandPreDestroy">PostConstruct and
PreDestroy</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Locatingcustomresourcesinwebapplications">Locating
custom resources in web applications</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Multipleendpointsandresourceclasses">Multiple
endpoints and re
source classes</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-DynamicservletsandasingleJAXRSendpoint">Dynamic
servlets and a single JAX-RS endpoint</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-ServletContainerConfiguration">Servlet
Container Configuration</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Tomcat">Tomcat</a></li></ul></ul></div>
+<ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesprogrammatically">Configuring
JAX-RS services programmatically</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-OSGI">OSGI</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Blueprint">Blueprint</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-Spring">Spring</a></li></ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSendpointsprogrammaticallywithoutSpring">Configuring
JAX-RS endpoints programmatically without Spring</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesincontainerwithSpringconfigurationfile.">Configuring
JAX-RS services in container with Spring configuration
file.</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-web.xml">web.xml</a></li><ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-UsingSpringContextLoaderListener">Using
Spring ContextLoaderListener</a></
li><li><a shape="rect"
href="#JAXRSServicesConfiguration-UsingCXFServletinitparameters">Using
CXFServlet init parameters</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-beans.xml">beans.xml</a></li></ul><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesusingexplicitbeanconfiguration">Configuring
JAX-RS services using explicit bean configuration</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-SpringAOP">Spring AOP</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesincontainerwithoutSpring">Configuring
JAX-RS services in container without Spring</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-AttachingJAXRSendpointstoanexistingJettyserver">Attaching
JAXRS endpoints to an existing Jetty server</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-JAXRSRuntimeDelegateandApplications">JAX-RS
RuntimeDelegate and Applications</a></li><li><a shape="rect" hre
f="#JAXRSServicesConfiguration-ConfiguringJAXRSservicesprogrammaticallywithSpringconfigurationfile.">Configuring
JAX-RS services programmatically with Spring configuration
file.</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Lifecyclemanagement">Lifecycle
management</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-FromSpring">From Spring</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-WithCXFNonSpringJaxrsServlet">With
CXFNonSpringJaxrsServlet</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Programmatically">Programmatically</a></li><li><a
shape="rect"
href="#JAXRSServicesConfiguration-PostConstructandPreDestroy">PostConstruct and
PreDestroy</a></li></ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Locatingcustomresourcesinwebapplications">Locating
custom resources in web applications</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Multipleendpointsandresourceclasses">Multiple
endpoints and re
source classes</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-Sharingprovidersbetweenmultipleendpoints">Sharing
providers between multiple endpoints</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-DynamicservletsandasingleJAXRSendpoint">Dynamic
servlets and a single JAX-RS endpoint</a></li><li><a shape="rect"
href="#JAXRSServicesConfiguration-ServletContainerConfiguration">Servlet
Container Configuration</a></li><ul><li><a shape="rect"
href="#JAXRSServicesConfiguration-Tomcat">Tomcat</a></li></ul></ul></div>
<h1><a shape="rect"
name="JAXRSServicesConfiguration-ConfiguringJAXRSservicesprogrammatically"></a>Configuring
JAX-RS services programmatically</h1>
@@ -906,6 +906,72 @@ Since CXF 2.2.3 one can put them directl
<p>One can configure as many jaxrs:server endpoints as needed for a given
application, with every endpoint possibly providing an alternative path to a
single resource bean. Every endpoint can employ as many shared or unique
resource classes as needed, and have common or different providers. </p>
+<h1><a shape="rect"
name="JAXRSServicesConfiguration-Sharingprovidersbetweenmultipleendpoints"></a>Sharing
providers between multiple endpoints</h1>
+
+<p>One way to share multiple providers between multiple endpoints is to refer
to the same provider bean from within jaxrs:provider sections:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">
+<span class="code-tag"><beans></span>
+ <span class="code-tag"><jaxrs:server id=<span
class="code-quote">"customerService"</span> address=<span
class="code-quote">"/service1"</span>></span>
+ <span class="code-tag"><jaxrs:serviceBeans></span>
+ <span class="code-tag"><bean class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.CustomerService"</span>/></span>
+ <span class="code-tag"></jaxrs:serviceBeans></span>
+ <span class="code-tag"><jaxrs:providers></span>
+ <span class="code-tag"><bean ref=<span
class="code-quote">"customProvider"</span>/></span>
+ <span class="code-tag"></jaxrs:providers></span>
+
+ <span class="code-tag"></jaxrs:server></span>
+
+ <span class="code-tag"><jaxrs:server id=<span
class="code-quote">"customerService"</span> address=<span
class="code-quote">"/service2"</span>></span>
+ <span class="code-tag"><jaxrs:serviceBeans></span>
+ <span class="code-tag"><bean class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.CustomerService2"</span>/></span>
+ <span class="code-tag"></jaxrs:serviceBeans></span>
+ <span class="code-tag"><jaxrs:providers></span>
+ <span class="code-tag"><bean ref=<span
class="code-quote">"customProvider"</span>/></span>
+ <span class="code-tag"></jaxrs:providers></span>
+ <span class="code-tag"></jaxrs:server></span>
+
+ <span class="code-tag"><bean id=<span
class="code-quote">"customProvider"</span> class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.CustomerProvider"</span>/></span>
+<span class="code-tag"></beans></span>
+
+</pre>
+</div></div>
+
+<p>Starting from CXF 2.7.2 it is possible to register provider directly on the
bus as the bus properties and share them between all the providers using this
bus:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">
+<span class="code-tag"><beans></span>
+
+ <span class="code-tag"><cxf:bus></span>
+ <span class="code-tag"><cxf:properties></span>
+ <span class="code-tag"><entry key=<span
class="code-quote">"javax.ws.rs.ext.ExceptionMapper"</span> ref=<span
class="code-quote">"exceptionMapper"</span>/></span>
+ <span class="code-tag"></cxf:properties></span>
+ </cxf:bus
+
+ <span class="code-tag"><bean id=<span
class="code-quote">"exceptionMapper"</span> class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.RuntimeExceptionMapper"</span>/></span>
+
+ <span class="code-tag"><jaxrs:server id=<span
class="code-quote">"customerService"</span> address=<span
class="code-quote">"/service1"</span>></span>
+ <span class="code-tag"><jaxrs:serviceBeans></span>
+ <span class="code-tag"><bean class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.CustomerService"</span>/></span>
+ <span class="code-tag"></jaxrs:serviceBeans></span>
+ <span class="code-tag"></jaxrs:server></span>
+
+ <span class="code-tag"><jaxrs:server id=<span
class="code-quote">"customerService"</span> address=<span
class="code-quote">"/service2"</span>></span>
+ <span class="code-tag"><jaxrs:serviceBeans></span>
+ <span class="code-tag"><bean class=<span
class="code-quote">"org.apache.cxf.systest.jaxrs.CustomerService2"</span>/></span>
+ <span class="code-tag"></jaxrs:serviceBeans></span>
+ <span class="code-tag"></jaxrs:server></span>
+
+ <span class="code-tag"></beans></span>
+</pre>
+</div></div>
+
+<p>Note a global exception mapper has been registered using the name of
interface, "javax.ws.rs.ext.ExceptionMapper", which all the exception mappers
have to implement. </p>
+
+<p>Note at the moment it is only possible to register the providers bound to a
specific bus implementing "javax.ws.rs.ext.ExceptionMapper",
"javax.ws.rs.ext.MessageBodyReader" or "javax.ws.rs.ext.MessageBodyWriter"
interfaces. Registering all supported JAX-RS and CXF-specific providers on the
specific bus will also be possible soon. </p>
+
<h1><a shape="rect"
name="JAXRSServicesConfiguration-DynamicservletsandasingleJAXRSendpoint"></a>Dynamic
servlets and a single JAX-RS endpoint</h1>
<p>In some advanced cases you may want to dynamically add new servlets
(CXFServlet or CXFNonSpringJaxrsServlet) with all of them serving the same
JAX-RS endpoints. In this case you most likely want to configure servlets so
that the CXF endpoint address is not overridden :</p>