Modified: websites/production/camel/content/cxfrs.html
==============================================================================
--- websites/production/camel/content/cxfrs.html (original)
+++ websites/production/camel/content/cxfrs.html Mon Mar 9 17:22:33 2015
@@ -92,7 +92,7 @@
<p>When using CXF as a consumer, the <a
shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you
to factor out how message payloads are received from their processing as a
RESTful or SOAP web service. This has the potential of using a multitude of
transports to consume web services. The bean component's configuration is also
simpler and provides the fastest method to implement web services using Camel
and CXF.</p>
</div>
</div>
-<p>The <strong>cxfrs:</strong> component provides integration with <a
shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to
JAX-RS services hosted in CXF.</p><p>Maven users will need to add the following
dependency to their pom.xml for this component:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>The <strong>cxfrs:</strong> component provides integration with <a
shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to
JAX-RS 1.1 and 2.0 services hosted in CXF.</p><p>Maven users will need to add
the following dependency to their pom.xml for this component:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
@@ -108,7 +108,7 @@
</div></div><p>Where <strong>rsEndpoint</strong> represents the spring bean's
name which presents the CXFRS client or server</p><p>For either style above,
you can append options to the URI as follows:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
]]></script>
-</div></div><h3 id="CXFRS-Options">Options</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Required?</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>default value</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>resourceClasses</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The resource classes which you
want to export as REST service. Multiple classes can be separated by
comma.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>resourceClasses=org.apache.camel.rs.Example1,</code><br
clear="none"> <code>org.apache.camel.rs.Exchange2</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>resourceClass</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>:
Use <code>resourceClasses</code> The resource class which you want to export as
REST service.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>resourceClass
=org.apache.camel.rs.Example1</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>httpClientAPI</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>new to Camel
2.1</strong> If it is true, the CxfRsProducer will use the HttpClientAPI to
invoke the service <br clear="none" class="atl-forced-newline"> If it is false,
the CxfRsProducer will use the ProxyClientAPI to invoke the service</p></td><td
colspan="1" r
owspan="1" class="confluenceTd"><p>httpClientAPI=true</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>true</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>synchronous</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.5, this option will
let CxfRsConsumer decide to use sync or async API to do the underlying work.
The default value is false which means it will try to use async API by
default.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>synchronous=true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, this option tells
the CxfRsProducer to inspect return codes and will generate an E
xception if the return code is larger than 207.</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure=true</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>maxClientCacheSize</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, you can set a IN
message header CamelDestinationOverrideUrl to dynamically override the target
destination Web Service or REST Service defined in your routes.  The
implementation caches CXF clients or ClientFactoryBean in CxfProvider and
CxfRsProvider.  This option allows you to configure the maximum size of
the cache.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>maxClientCacheSize=5</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>10</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>setDefaultBus</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>New in 2.9.0. Will set the default bus when
CXF endpoint create a bus by itself</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>setDefaultBus=true</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>false</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>bus</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>New in 2.9.0. A default bus created by CXF
Bus Factory. Use <code>#</code> notation to reference a bus object from the
registry. The referenced object must be an instance of
<code>org.apache.cxf.Bus</code>.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>bus=#busName</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="conflue
nceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>bindingStyle</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>As of 2.11</strong>. Sets how
requests and responses will be mapped to/from Camel. Two values are
possible:</p><ul class="alternate"><li><code>SimpleConsumer</code> => see
the <a shape="rect"
href="#CXFRS-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request
with the Simple Binding Style</a> below.</li><li><code>Default</code> => the
default style. For consumers this passes on a <code>MessageContentsList</code>
to the route, requiring low-level processing in the route.</li><li><span
style="font-family: monospace;">Custom</span> => allows you to specify a
custom binding through the <code>binding</code> option.</li></ul></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>bindingStyle=SimpleConsumer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</
p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>Default</em></p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>binding</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">Allows you to specify a custom
<code>CxfRsBinding</code> implementation to perform low-level processing of the
raw CXF request and response objects. The implementation must be bound in the
Camel registry, and you must use the hash (#) notation to refer to it.</td><td
colspan="1" rowspan="1"
class="confluenceTd"><code><span>binding=#myBinding</span></code></td><td
colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><code>DefaultCxfRsBinding</code></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">providers</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.2</strong><
span style="line-height: 1.4285715;"> set custom JAX-RS providers list to the
CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>providers=#MyProviders</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">schemaLocations</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.2</strong><span style="line-height: 1.4285715;"> Sets the locations of the
schemas which can be used to validate the incoming XML or JAXB-driven
JSON.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>schemaLocations=#MySchemaLocations</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class=
"confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">features</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.3</strong><span style="line-height: 1.4285715;"> Set the feature list to
the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>features=#MyFeatures</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the properties to the CxfRs endpoint.</span></p></td><
td colspan="1" rowspan="1"
class="confluenceTd"><p><code>properties=#MyProperties</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>inInterceptors</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the inInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>inInterceptors=#MyInterceptors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>outInterceptors</code></p></td><td colspan="1"
rowspan="1" class="confluenc
eTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.4</strong><span style="line-height: 1.4285715;"> Set the outInterceptor to
the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">outInterceptors=#MyInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>inFaultInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the inFaultInterceptors to the CxfRs endpoint.</span></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">inFaultInterceptors=#My
Interceptors</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>outFaultIntercetpros</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the outFaultInterceptors to the CxfRs endpoint.</span></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">outFaultInterceptors=#MyInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="conflue
nceTd"><p><code>continuationTimeout</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="line-height:
1.4285715;"><strong>Since</strong> </span><strong style="line-height:
1.4285715;">Camel 2.14.0 </strong><span style="line-height:
1.4285715;">This option is used to set the CXF continuation timeout which could
be used in CxfConsumer by default when the CXF server is using Jetty or Servlet
transport. (Before </span><strong style="line-height: 1.4285715;">Camel
2.14.0</strong><span style="line-height: 1.4285715;">, CxfConsumer just set the
continuation timeout to be 0, which means the continuation suspend operation
never timeout.)</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">continuationTimeout=800000</span></code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height: 1.4285715;">30000</
em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><code>ignoreDeleteMethodMessageBody</code></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Since Camel
2.14.1</strong> This option is used to tell CxfRsProducer to ignore the message
body of the DELETE method when using HTTP API.</td><td colspan="1" rowspan="1"
class="confluenceTd"><code><span>ignoreDeleteMethodMessageBody=true</span></code></td><td
colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1"
rowspan="1" class="confluenceTd"><em>false</em></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>modelRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Since Camel
2.14.2</strong> This option is used to specify the model file which is useful
for the resource class without annotation.</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>modelRef=</code><a shape="rect"
class="external-link" href="http://classpath/org/apache/camel/compo
nent/cxf/jaxrs/CustomerServiceModel.xml" style="font-family:
monospace;line-height: 1.4285715;"
rel="nofollow">classpath:/CustomerServiceModel.xml</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><em>None</em></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p class="p1"><code>performInvocation</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">Since Camel 2.15 When the option
is true, camel will perform the invocation of the resource class instance and
put the response object into the exchange for further processing.</td><td
colspan="1" rowspan="1" class="confluenceTd"><p
class="p1"><code>performInvocation= true</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><em>false</em></td></tr></tbody></table></div><p>You can
also configure the CXF REST endpoint through the spring configuration. Since
there are lots of differenc
e between the CXF REST client and CXF REST Server, we provide different
configuration for them.<br clear="none"> Please check out the <a shape="rect"
class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema
file</a> and <a shape="rect" class="external-link"
href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a>
for more information.</p><h3
id="CXFRS-HowtoconfiguretheRESTendpointinCamel">How to configure the REST
endpoint in Camel</h3><p>In <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf
schema file</a>, there are two elements for the REST endpoint definition.
<strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</strong>
for REST producer.<br clear="none"> You can find a Camel REST service route
configuration example here.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="CXFRS-Options">Options</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Required?</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>default value</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>resourceClasses</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The resource classes which you
want to export as REST service. Multiple classes can be separated by
comma.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>resourceClasses=org.apache.camel.rs.Example1,</code><br
clear="none"> <code>org.apache.camel.rs.Exchange2</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>resourceClass</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>:
Use <code>resourceClasses</code> The resource class which you want to export as
REST service.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>resourceClass
=org.apache.camel.rs.Example1</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>httpClientAPI</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>new to Camel
2.1</strong> If it is true, the CxfRsProducer will use the HttpClientAPI to
invoke the service <br clear="none" class="atl-forced-newline"> If it is false,
the CxfRsProducer will use the ProxyClientAPI to invoke the service</p></td><td
colspan="1" r
owspan="1" class="confluenceTd"><p>httpClientAPI=true</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>true</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>synchronous</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.5, this option will
let CxfRsConsumer decide to use sync or async API to do the underlying work.
The default value is false which means it will try to use async API by
default.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>synchronous=true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, this option tells
the CxfRsProducer to inspect return codes and will generate an E
xception if the return code is larger than 207.</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure=true</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>maxClientCacheSize</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, you can set a IN
message header CamelDestinationOverrideUrl to dynamically override the target
destination Web Service or REST Service defined in your routes.  The
implementation caches CXF clients or ClientFactoryBean in CxfProvider and
CxfRsProvider.  This option allows you to configure the maximum size of
the cache.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>maxClientCacheSize=5</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>10</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>setDefaultBus</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>New in 2.9.0. Will set the default bus when
CXF endpoint create a bus by itself</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>setDefaultBus=true</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>false</em></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>bus</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>New in 2.9.0. A default bus created by CXF
Bus Factory. Use <code>#</code> notation to reference a bus object from the
registry. The referenced object must be an instance of
<code>org.apache.cxf.Bus</code>.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>bus=#busName</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="conflue
nceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>bindingStyle</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>As of 2.11</strong>. Sets how
requests and responses will be mapped to/from Camel. Two values are
possible:</p><ul class="alternate"><li><code>SimpleConsumer</code> => see
the <a shape="rect"
href="#CXFRS-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request
with the Simple Binding Style</a> below.</li><li><code>Default</code> => the
default style. For consumers this passes on a <code>MessageContentsList</code>
to the route, requiring low-level processing in the route.</li><li><span
style="font-family: monospace;">Custom</span> => allows you to specify a
custom binding through the <code>binding</code> option.</li></ul></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>bindingStyle=SimpleConsumer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</
p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>Default</em></p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>binding</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">Allows you to specify a custom
<code>CxfRsBinding</code> implementation to perform low-level processing of the
raw CXF request and response objects. The implementation must be bound in the
Camel registry, and you must use the hash (#) notation to refer to it.</td><td
colspan="1" rowspan="1"
class="confluenceTd"><code><span>binding=#myBinding</span></code></td><td
colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><code>DefaultCxfRsBinding</code></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">providers</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.2</strong><
span style="line-height: 1.4285715;"> set custom JAX-RS providers list to the
CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>providers=#MyProviders</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">schemaLocations</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.2</strong><span style="line-height: 1.4285715;"> Sets the locations of the
schemas which can be used to validate the incoming XML or JAXB-driven
JSON.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>schemaLocations=#MySchemaLocations</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class=
"confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">features</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.3</strong><span style="line-height: 1.4285715;"> Set the feature list to
the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>features=#MyFeatures</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the properties to the CxfRs endpoint.</span></p></td><
td colspan="1" rowspan="1"
class="confluenceTd"><p><code>properties=#MyProperties</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>inInterceptors</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the inInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>inInterceptors=#MyInterceptors</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>outInterceptors</code></p></td><td colspan="1"
rowspan="1" class="confluenc
eTd"><p><strong style="line-height: 1.4285715;">Since Camel
2.12.4</strong><span style="line-height: 1.4285715;"> Set the outInterceptor to
the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">outInterceptors=#MyInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>inFaultInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the inFaultInterceptors to the CxfRs endpoint.</span></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">inFaultInterceptors=#My
Interceptors</span></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>outFaultIntercetpros</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height:
1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;">
Set the outFaultInterceptors to the CxfRs endpoint.</span></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height:
1.4285715;">outFaultInterceptors=#MyInterceptors</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height:
1.4285715;">No</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height:
1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1"
class="conflue
nceTd"><p><code>continuationTimeout</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="line-height:
1.4285715;"><strong>Since</strong> </span><strong style="line-height:
1.4285715;">Camel 2.14.0 </strong><span style="line-height:
1.4285715;">This option is used to set the CXF continuation timeout which could
be used in CxfConsumer by default when the CXF server is using Jetty or Servlet
transport. (Before </span><strong style="line-height: 1.4285715;">Camel
2.14.0</strong><span style="line-height: 1.4285715;">, CxfConsumer just set the
continuation timeout to be 0, which means the continuation suspend operation
never timeout.)</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span style="line-height:
1.4285715;">continuationTimeout=800000</span></code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><em style="line-height: 1.4285715;">30000</
em></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><code>ignoreDeleteMethodMessageBody</code></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Since Camel
2.14.1</strong> This option is used to tell CxfRsProducer to ignore the message
body of the DELETE method when using HTTP API.</td><td colspan="1" rowspan="1"
class="confluenceTd"><code><span>ignoreDeleteMethodMessageBody=true</span></code></td><td
colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1"
rowspan="1" class="confluenceTd"><em>false</em></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>modelRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel
2.14.2</strong> This option is used to specify the <a shape="rect"
href="http://cxf.apache.org/docs/jax-rs-advanced-features.html#JAX-RSAdvancedFeatures-RESTfulserviceswithoutannotations">model
file</a> which is useful for the resource class without
annotation.</p><p><strong>Sin
ce Camel 2.15</strong> This option can point to a model file without
specifying a service class for emulating document-only endpoints</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>modelRef=</code><a
shape="rect" class="external-link"
href="http://classpath/org/apache/camel/component/cxf/jaxrs/CustomerServiceModel.xml"
style="font-family: monospace;line-height: 1.4285715;"
rel="nofollow">classpath:/CustomerServiceModel.xml</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><em>None</em></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p class="p1"><code>performInvocation</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Since Camel 2.15</strong>
When the option is true, camel will perform the invocation of the resource
class instance and put the response object into the exchange for further
processing.</td><td colspan="1" rowspan="1" class="confluenceTd"><p class=
"p1"><code>performInvocation= true</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd">No</td><td colspan="1" rowspan="1"
class="confluenceTd"><em>false</em></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">propagateContexts</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Since Camel 2.15</strong> When the option is true,
JAXRS <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0-rev-a/apidocs/javax/ws/rs/core/UriInfo.html"
rel="nofollow">UriInfo</a>, <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0-rev-a/apidocs/javax/ws/rs/core/HttpHeaders.html"
rel="nofollow">HttpHeaders</a>, <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0-rev-a/apidocs/javax/ws/rs/core/Request.html"
rel="nofollow">Request</a> and <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0-rev-a/apidocs/javax/ws/rs/core/SecurityContext.html"
rel="nofollow"
>SecurityContext</a> contexts will be available to custom CXFRS processors as
>typed Camel exchange properties. These contexts can be used to analyze the
>current requests using JAX-RS API.</td><td colspan="1" rowspan="1"
>class="confluenceTd"> </td><td colspan="1" rowspan="1"
>class="confluenceTd"> </td><td colspan="1" rowspan="1"
>class="confluenceTd"> </td></tr></tbody></table></div><p>You can also
>configure the CXF REST endpoint through the spring configuration. Since there
>are lots of difference between the CXF REST client and CXF REST Server, we
>provide different configuration for them.<br clear="none"> Please check out
>the <a shape="rect" class="external-link"
>href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema
> file</a> and <a shape="rect" class="external-link"
>href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a>
>for more information.</p><h3 id="CXFRS-HowtoconfiguretheRESTen
dpointinCamel">How to configure the REST endpoint in Camel</h3><p>In <a
shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf
schema file</a>, there are two elements for the REST endpoint definition.
<strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</strong>
for REST producer.<br clear="none"> You can find a Camel REST service route
configuration example here.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -267,7 +267,7 @@ protected RouteBuilder createRouteBuilde
<p class="title">Note about resource classes</p>
<span class="aui-icon icon-hint">Icon</span>
<div class="message-content">
- <p>Resource classes are <strong>only </strong>used
to configure JAX-RS properties. Methods will <strong>not</strong> be executed
during routing of messages to the endpoint. Instead, it is the responsibility
of the route to do all processing.</p>
+ <p>By default, JAX-RS resource classes are
<strong>only </strong>used to configure JAX-RS properties. Methods will
<strong>not</strong> be executed during routing of messages to the endpoint.
Instead, it is the responsibility of the route to do all processing.</p><p>Note
that starting from Camel 2.15 it is also sufficient to provide an interface
only as opposed to a no-op service implementation class for the default
mode.</p><p>Starting from Camel 2.15, if a <strong>performInvocation</strong>
option is enabled, the service implementation will be invoked first, the
response will be set on the Camel exchange and the route execution will
continue as usual. This can be useful for</p><p>integrating the existing JAX-RS
implementations into Camel routes and for post-processing JAX-RS Responses in
custom processors.</p><p> </p>
</div>
</div>
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">