Modified: websites/production/camel/content/cxf.html
==============================================================================
--- websites/production/camel/content/cxf.html (original)
+++ websites/production/camel/content/cxf.html Fri Oct 21 11:21:26 2016
@@ -103,7 +103,7 @@
 </div></div><p>Where <strong>someAddress</strong> specifies the CXF endpoint's 
address. With this URI format, most of the endpoint details are specified using 
options.</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="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[cxf:bean:cxfEndpoint?wsdlURL=wsdl/hello_world.wsdl&amp;dataFormat=PAYLOAD
 ]]></script>
-</div></div><h3 id="CXF-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>Required</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>wsdlURL</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The location of the WSDL. It is obtained 
from endpoint address by default. <br clear="none" class="atl-forced-newline"> 
<br clear="none" class="atl-forced-newline"> <em>Example</em>: <a shape="rect" 
class="external-link" href="file://local/wsdl/hello.wsdl" 
rel="nofollow">file://local/wsdl/hello.wsdl</a> or 
<code>wsdl/hello.wsdl</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>serviceClass</code></p></td><td colspan="1" 
rowspan="1" class="
 confluenceTd"><p>Yes</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The name of the SEI (Service Endpoint Interface) class. 
This class can have, but does not require, JSR181 annotations. <br clear="none" 
class="atl-forced-newline"> This option is only required by POJO mode. If the 
wsdlURL option is provided, serviceClass is not required for PAYLOAD and 
MESSAGE mode. When wsdlURL option is used without serviceClass, the serviceName 
and portName (endpointName for Spring configuration) options 
<strong>MUST</strong> be provided. It is possible to use <code>#</code> 
notation to reference a <code>serviceClass</code> object instance from the 
registry. E.g. <code>serviceClass=#beanName</code>. The 
<code>serviceClass</code> for a CXF producer (that is, the <code>to</code> 
endpoint) should be a Java interface.<br clear="none" 
class="atl-forced-newline"> <strong>Since 2.8,</strong> it is possible to omit 
both wsdlURL and serviceClass options for PAYLOAD and MESSAGE mode. When they
  are omitted, arbitrary XML elements can be put in CxfPayload's body in 
PAYLOAD mode to facilitate CXF Dispatch Mode. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> Please 
be advised that the <strong>referenced object cannot be a Proxy</strong> 
(Spring AOP Proxy is OK) as it relies on 
<code>Object.getClass().getName()</code> method for non Spring AOP Proxy. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>org.apache.camel.Hello</code></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>serviceName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The service name this service is 
implementing, it maps to the <code>wsdl:service@name</code>. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<strong>Required</strong> for camel-cxf consumer 
 since camel-2.2.0 or if more than one <code>serviceName</code> is present in 
WSDL. <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
{http:&#173;//org.apache.camel}ServiceName</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>endpointName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The port name this service is implementing, 
it maps to the <code>wsdl:port@name</code>. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<strong>Required</strong> for camel-cxf consumer since camel-2.2.0 or if more 
than one <code>portName</code> is present under <code>serviceName</code>. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
{http:&#173;//org.apache.camel}PortName</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><
 p><code>dataFormat</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The data type messages supported by the CXF endpoint. 
<br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>POJO</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: <code>POJO</code>, 
<code>PAYLOAD</code>, <code>MESSAGE</code></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>relayHeaders</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Please see the <strong>Description 
of</strong> <code><strong>relayHeaders</strong></code> <strong>option</strong> 
section for this option. Should a CXF endpoint relay headers along the route. 
Currently only available when <code>dataFormat=POJO</code> <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-f
 orced-newline"> <em>Default</em>: <code>true</code> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>wrapped</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Which kind of operation that CXF endpoint producer will 
invoke <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>wrappedStyle</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>New in 2.5.0</strong> The WSDL style that 
describes how parameters are represented in the SOAP body. If the value 
 is false, CXF will chose the document-literal unwrapped style, If the value is 
true, CXF will chose the document-literal wrapped style <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<em>Default</em>: <code>Null</code> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Deprecated</strong> Will set the default bus 
when CXF endpoint create a bus by itself. This option is deprecated use 
defaultBus from Camel 2.16 onwards.<br clear="none" class="atl-forced-newline"> 
<br clear="none" class="atl-forced-newline"> <em>Default</em>: 
<code>false</code> <br clear="none" class="atl-forced-newline"> 
<em>Example</em>: <code>true</code>, <code>false</code></p></td></tr><tr><td 
colspan
 ="1" rowspan="1" class="confluenceTd"><span><code>defaultBus</code><br 
clear="none"></span></td><td colspan="1" rowspan="1" 
class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><strong>Camel 2.16:</strong> Will set the default 
bus when CXF endpoint create a bus by itself 
</span></p><p><span><span>&#160;</span><em>Default</em><span>: 
</span><code>false</code><span>&#160;</span><br clear="none" 
class="atl-forced-newline"><span>&#160;</span><em>Example</em><span>: 
</span><code>true</code><span>, 
</span><code>false</code></span></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>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>. <br 
clear="none" class="atl-for
 ced-newline"> <br clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>bus=#busName</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cxfBinding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Use <code>#</code> notation to reference a CXF binding 
object from the registry. The referenced object must be an instance of 
<code>org.apache.camel.component.cxf.CxfBinding</code> (use an instance of 
<code>org.apache.camel.component.cxf.DefaultCxfBinding</code>). <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>cxfBinding=#bindingName</code></p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>headerFilterStrategy</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Use <code>#</code> notation to reference a
  header filter strategy object from the registry. The referenced object must 
be an instance of <code>org.apache.camel.spi.HeaderFilterStrategy</code> (use 
an instance of 
<code>org.apache.camel.component.cxf.CxfHeaderFilterStrategy</code>). <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>headerFilterStrategy=#strategyName</code></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>loggingFeatureEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.3. This option enables CXF Logging 
Feature which writes inbound and outbound SOAP messages to log. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>loggingFeatureEnabled</code><code>=true</code></p></td></tr><tr><td co
 lspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultOperationName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.4, this option will set the 
default operationName that will be used by the CxfProducer which invokes the 
remote service. <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>null</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>defaultOperationName</code><code>=greetMe</code></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultOperationNamespace</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.4. This option will set the 
default operationNamespace that will be used by the CxfProducer which invokes 
the remote service. <br clear="none" class="atl-forced-newline"> <br clear
 ="none" class="atl-forced-newline"> <em>Default</em>: <code>null</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>defaultOperationNamespace</code><code>=</code><code><a shape="rect" 
class="external-link" 
href="http://apache.org/hello_world_soap_http";>http://apache.org/hello_world_soap_http</a></code></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in 2.5. This option will let cxf endpoint decide to 
use sync or async API to do the underlying work. The default value is false 
which means camel-cxf endpoint will try to use async API by default. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
synchronous=true</p></td></tr><tr><td colspan="1" rowspan="1
 " class="confluenceTd"><p><code>publishedEndpointUrl</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.5. This option can override the 
endpointUrl that published from the WSDL which can be accessed with service 
address url plus ?wsdl. <br clear="none" class="atl-forced-newline"> <br 
clear="none" class="atl-forced-newline"> <em>Default</em>: <code>null</code> 
<br clear="none" class="atl-forced-newline"> <em>Example</em>: 
publshedEndpointUrl=<a shape="rect" class="external-link" 
href="http://example.com/service"; 
rel="nofollow">http://example.com/service</a></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>properties.XXX</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Allows to set 
custom properties to CXF in the endpoint uri. For example setting 
<code>properties.m
 tom-enabled=true</code> to enable MTOM. <code style="line-height: 
1.4285715;">properties.org.apache.cxf.interceptor.OneWayProcessorInterceptor.USE_ORIGINAL_THREAD=true
 </code><span style="line-height: 1.4285715;">just make sure the CXF doesn't 
switch the thread when start the invocation.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowStreaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.8.2</strong>. This option 
controls whether the CXF component, when running in PAYLOAD mode (see below), 
will DOM parse the incoming messages into DOM Elements or keep the payload as a 
javax.xml.transform.Source object that would allow streaming in some 
cases.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>skipFaultLogging</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>New in <strong>Camel 2.11</strong>. This option 
controls whether the PhaseInterceptorChain skips logging the Fault that it 
catches.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="line-height: 
1.4285715;"><code>cxfEndpointConfigurer</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.11</strong>. This option could 
apply the implementation of 
<code><span>org.apache.camel.component.cxf.CxfEndpointConfigurer which 
</span></code><span>supports to configure the CXF endpoint in 
</span><span>&#160;programmatic way. </span><span style="line-height: 
1.4285715;">Since </span><strong style="line-height: 1.4285715;">Camel 2.15.0, 
</strong>user can configure the CXF server and client by implementing 
configure{Server|Client} method of 
<span><code>CxfEndpointConfigurer</code>.</span></p></td></tr><tr><td 
colspan="1" r
 owspan="1" class="confluenceTd"><p><code>username</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in <strong>Camel 2.12.3</strong> This 
option is used to set the basic authentication information of username for the 
CXF client.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>password</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.12.3</strong> This option is 
used to set the basic authentication information of password for the CXF 
client.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>continuationTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in <strong>Camel 2.14.0 </strong>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 <strong>Camel 2.14.0</strong>, CxfConsumer just set the 
continuation timeout to be 0, which means the continuation suspend operation 
never timeout.)</p><p><em> Default</em>: <span style="font-family: 
monospace;">30000</span><br clear="none" 
class="atl-forced-newline">&#160;<em>Example</em>: 
continuation=80000</p></td></tr></tbody></table></div><p>The 
<code>serviceName</code> and <code>portName</code> are <a shape="rect" 
class="external-link" href="http://en.wikipedia.org/wiki/QName"; 
rel="nofollow">QNames</a>, so if you provide them be sure to prefix them with 
their {namespace} as shown in the examples above.</p><h4 
id="CXF-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>DataFormat</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description<
 /p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>POJO</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>POJOs (Plain old Java objects) are the Java parameters 
to the method being invoked on the target server. Both Protocol and Logical 
JAX-WS handlers are supported.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>PAYLOAD</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>PAYLOAD</code> is the message payload 
(the contents of the <code>soap:body</code>) after message configuration in the 
CXF endpoint is applied. Only Protocol JAX-WS handler is supported. Logical 
JAX-WS handler is not supported.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>MESSAGE</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>MESSAGE</code> is the raw message 
that is received from the transport layer. It is not suppose to touch or change 
Stream, some of the CXF interceptor
 s will be removed if you are using this kind of DataFormat so you can't see 
any soap headers after the camel-cxf consumer and JAX-WS handler is not 
supported.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CXF_MESSAGE</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in <strong>Camel 2.8.2</strong>, 
<code>CXF_MESSAGE</code> allows for invoking the full capabilities of CXF 
interceptors by converting the message from the transport layer into a raw SOAP 
message</p></td></tr></tbody></table></div><p>You can determine the data format 
mode of an exchange by retrieving the exchange property, 
<code>CamelCXFDataFormat</code>. The exchange key constant is defined in 
<code>org.apache.camel.component.cxf.CxfConstants.DATA_FORMAT_PROPERTY</code>.</p><h5
 id="CXF-HowtoenableCXF'sLoggingOutInterceptorinMESSAGEmode">How to enable 
CXF's LoggingOutInterceptor in MESSAGE mode</h5><p>CXF's 
<code>LoggingOutInterceptor</code> outputs outbound message that g
 oes on the wire to logging system (Java Util Logging). Since the 
<code>LoggingOutInterceptor</code> is in <code>PRE_STREAM</code> phase (but 
<code>PRE_STREAM</code> phase is removed in <code>MESSAGE</code> mode), you 
have to configure <code>LoggingOutInterceptor</code> to be run during the 
<code>WRITE</code> phase. The following is an example.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="CXF-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>Required</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>wsdlURL</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The location of the WSDL. It is obtained 
from endpoint address by default. <br clear="none" class="atl-forced-newline"> 
<br clear="none" class="atl-forced-newline"> <em>Example</em>: <a shape="rect" 
class="external-link" href="file://local/wsdl/hello.wsdl" 
rel="nofollow">file://local/wsdl/hello.wsdl</a> or 
<code>wsdl/hello.wsdl</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>serviceClass</code></p></td><td colspan="1" 
rowspan="1" class="
 confluenceTd"><p>Yes</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The name of the SEI (Service Endpoint Interface) class. 
This class can have, but does not require, JSR181 annotations. <br clear="none" 
class="atl-forced-newline"> This option is only required by POJO mode. If the 
wsdlURL option is provided, serviceClass is not required for PAYLOAD and 
MESSAGE mode. When wsdlURL option is used without serviceClass, the serviceName 
and portName (endpointName for Spring configuration) options 
<strong>MUST</strong> be provided. It is possible to use <code>#</code> 
notation to reference a <code>serviceClass</code> object instance from the 
registry. E.g. <code>serviceClass=#beanName</code>. The 
<code>serviceClass</code> for a CXF producer (that is, the <code>to</code> 
endpoint) should be a Java interface.<br clear="none" 
class="atl-forced-newline"> <strong>Since 2.8,</strong> it is possible to omit 
both wsdlURL and serviceClass options for PAYLOAD and MESSAGE mode. When they
  are omitted, arbitrary XML elements can be put in CxfPayload's body in 
PAYLOAD mode to facilitate CXF Dispatch Mode. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> Please 
be advised that the <strong>referenced object cannot be a Proxy</strong> 
(Spring AOP Proxy is OK) as it relies on 
<code>Object.getClass().getName()</code> method for non Spring AOP Proxy. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>org.apache.camel.Hello</code></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>serviceName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The service name this service is 
implementing, it maps to the <code>wsdl:service@name</code>. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<strong>Required</strong> for camel-cxf consumer 
 since camel-2.2.0 or if more than one <code>serviceName</code> is present in 
WSDL. <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
{http:&#173;//org.apache.camel}ServiceName</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>endpointName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The port name this service is implementing, 
it maps to the <code>wsdl:port@name</code>. <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<strong>Required</strong> for camel-cxf consumer since camel-2.2.0 or if more 
than one <code>portName</code> is present under <code>serviceName</code>. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
{http:&#173;//org.apache.camel}PortName</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><
 p><code>dataFormat</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The data type messages supported by the CXF endpoint. 
<br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>POJO</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: <code>POJO</code>, 
<code>PAYLOAD</code>, <code>MESSAGE</code></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>relayHeaders</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Please see the <strong>Description 
of</strong> <code><strong>relayHeaders</strong></code> <strong>option</strong> 
section for this option. Should a CXF endpoint relay headers along the route. 
Currently only available when <code>dataFormat=POJO</code> <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-f
 orced-newline"> <em>Default</em>: <code>true</code> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>wrapped</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Which kind of operation that CXF endpoint producer will 
invoke <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>wrappedStyle</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>New in 2.5.0</strong> The WSDL style that 
describes how parameters are represented in the SOAP body. If the value 
 is false, CXF will chose the document-literal unwrapped style, If the value is 
true, CXF will chose the document-literal wrapped style <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> 
<em>Default</em>: <code>Null</code> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: <code>true</code>, 
<code>false</code></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Deprecated</strong> Will set the default bus 
when CXF endpoint create a bus by itself. This option is deprecated use 
defaultBus from Camel 2.16 onwards.<br clear="none" class="atl-forced-newline"> 
<br clear="none" class="atl-forced-newline"> <em>Default</em>: 
<code>false</code> <br clear="none" class="atl-forced-newline"> 
<em>Example</em>: <code>true</code>, <code>false</code></p></td></tr><tr><td 
colspan
 ="1" rowspan="1" class="confluenceTd"><span><code>defaultBus</code><br 
clear="none"></span></td><td colspan="1" rowspan="1" 
class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><strong>Camel 2.16:</strong> Will set the default 
bus when CXF endpoint create a bus by itself 
</span></p><p><span><span>&#160;</span><em>Default</em><span>: 
</span><code>false</code><span>&#160;</span><br clear="none" 
class="atl-forced-newline"><span>&#160;</span><em>Example</em><span>: 
</span><code>true</code><span>, 
</span><code>false</code></span></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>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>. <br 
clear="none" class="atl-for
 ced-newline"> <br clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>bus=#busName</code></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cxfBinding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Use <code>#</code> notation to reference a CXF binding 
object from the registry. The referenced object must be an instance of 
<code>org.apache.camel.component.cxf.CxfBinding</code> (use an instance of 
<code>org.apache.camel.component.cxf.DefaultCxfBinding</code>). <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>cxfBinding=#bindingName</code></p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>headerFilterStrategy</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Use <code>#</code> notation to reference a
  header filter strategy object from the registry. The referenced object must 
be an instance of <code>org.apache.camel.spi.HeaderFilterStrategy</code> (use 
an instance of 
<code>org.apache.camel.component.cxf.CxfHeaderFilterStrategy</code>). <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Example</em>: 
<code>headerFilterStrategy=#strategyName</code></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>loggingFeatureEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.3. This option enables CXF Logging 
Feature which writes inbound and outbound SOAP messages to log. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>loggingFeatureEnabled</code><code>=true</code></p></td></tr><tr><td co
 lspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultOperationName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.4, this option will set the 
default operationName that will be used by the CxfProducer which invokes the 
remote service. <br clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>null</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>defaultOperationName</code><code>=greetMe</code></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultOperationNamespace</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.4. This option will set the 
default operationNamespace that will be used by the CxfProducer which invokes 
the remote service. <br clear="none" class="atl-forced-newline"> <br clear
 ="none" class="atl-forced-newline"> <em>Default</em>: <code>null</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
<code>defaultOperationNamespace</code><code>=</code><code><a shape="rect" 
class="external-link" 
href="http://apache.org/hello_world_soap_http";>http://apache.org/hello_world_soap_http</a></code></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>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in 2.5. This option will let cxf endpoint decide to 
use sync or async API to do the underlying work. The default value is false 
which means camel-cxf endpoint will try to use async API by default. <br 
clear="none" class="atl-forced-newline"> <br clear="none" 
class="atl-forced-newline"> <em>Default</em>: <code>false</code> <br 
clear="none" class="atl-forced-newline"> <em>Example</em>: 
synchronous=true</p></td></tr><tr><td colspan="1" rowspan="1
 " class="confluenceTd"><p><code>publishedEndpointUrl</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in 2.5. This option can override the 
endpointUrl that published from the WSDL which can be accessed with service 
address url plus ?wsdl. <br clear="none" class="atl-forced-newline"> <br 
clear="none" class="atl-forced-newline"> <em>Default</em>: <code>null</code> 
<br clear="none" class="atl-forced-newline"> <em>Example</em>: 
publshedEndpointUrl=<a shape="rect" class="external-link" 
href="http://example.com/service"; 
rel="nofollow">http://example.com/service</a></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>properties.XXX</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Allows to set 
custom properties to CXF in the endpoint uri. For example setting 
<code>properties.m
 tom-enabled=true</code> to enable MTOM. <code style="line-height: 
1.4285715;">properties.org.apache.cxf.interceptor.OneWayProcessorInterceptor.USE_ORIGINAL_THREAD=true
 </code><span style="line-height: 1.4285715;">just make sure the CXF doesn't 
switch the thread when start the invocation.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowStreaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.8.2</strong>. This option 
controls whether the CXF component, when running in PAYLOAD mode (see below), 
will DOM parse the incoming messages into DOM Elements or keep the payload as a 
javax.xml.transform.Source object that would allow streaming in some 
cases.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>skipFaultLogging</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>New in <strong>Camel 2.11</strong>. This option 
controls whether the PhaseInterceptorChain skips logging the Fault that it 
catches.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="line-height: 
1.4285715;"><code>cxfEndpointConfigurer</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.11</strong>. This option could 
apply the implementation of 
<code><span>org.apache.camel.component.cxf.CxfEndpointConfigurer which 
</span></code><span>supports to configure the CXF endpoint in 
</span><span>&#160;programmatic way. </span><span style="line-height: 
1.4285715;">Since </span><strong style="line-height: 1.4285715;">Camel 2.15.0, 
</strong>user can configure the CXF server and client by implementing 
configure{Server|Client} method of 
<span><code>CxfEndpointConfigurer</code>.</span></p></td></tr><tr><td 
colspan="1" r
 owspan="1" class="confluenceTd"><p><code>username</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in <strong>Camel 2.12.3</strong> This 
option is used to set the basic authentication information of username for the 
CXF client.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>password</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>New in <strong>Camel 2.12.3</strong> This option is 
used to set the basic authentication information of password for the CXF 
client.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>continuationTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New in <strong>Camel 2.14.0 </strong>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 <strong>Camel 2.14.0</strong>, CxfConsumer just set the 
continuation timeout to be 0, which means the continuation suspend operation 
never timeout.)</p><p><em> Default</em>: <span style="font-family: 
monospace;">30000</span><br clear="none" 
class="atl-forced-newline">&#160;<em>Example</em>: 
continuation=80000</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>cookieHandler</code></td><td colspan="1" rowspan="1" 
class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd">New in<strong> Camel 2.19.0:</strong> Configure a cookie 
handler to maintain a HTTP session</td></tr></tbody></table></div><p>The 
<code>serviceName</code> and <code>portName</code> are <a shape="rect" 
class="external-link" href="http://en.wikipedia.org/wiki/QName"; 
rel="nofollow">QNames</a>, so if you provide them be sure to prefix them with 
their {namespace} as shown in the examples above.
 </p><h4 id="CXF-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>DataFormat</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>POJO</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>POJOs (Plain old Java objects) are the Java 
parameters to the method being invoked on the target server. Both Protocol and 
Logical JAX-WS handlers are supported.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>PAYLOAD</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>PAYLOAD</code> is the 
message payload (the contents of the <code>soap:body</code>) after message 
configuration in the CXF endpoint is applied. Only Protocol JAX-WS handler is 
supported. Logical JAX-WS handler is not supported.</p></td></tr><t
 r><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>MESSAGE</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>MESSAGE</code> is the raw message 
that is received from the transport layer. It is not suppose to touch or change 
Stream, some of the CXF interceptors will be removed if you are using this kind 
of DataFormat so you can't see any soap headers after the camel-cxf consumer 
and JAX-WS handler is not supported.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CXF_MESSAGE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>New in <strong>Camel 
2.8.2</strong>, <code>CXF_MESSAGE</code> allows for invoking the full 
capabilities of CXF interceptors by converting the message from the transport 
layer into a raw SOAP message</p></td></tr></tbody></table></div><p>You can 
determine the data format mode of an exchange by retrieving the exchange 
property, <code>CamelCXFDataFormat</code>. The exchange key constant is defi
 ned in 
<code>org.apache.camel.component.cxf.CxfConstants.DATA_FORMAT_PROPERTY</code>.</p><h5
 id="CXF-HowtoenableCXF'sLoggingOutInterceptorinMESSAGEmode">How to enable 
CXF's LoggingOutInterceptor in MESSAGE mode</h5><p>CXF's 
<code>LoggingOutInterceptor</code> outputs outbound message that goes on the 
wire to logging system (Java Util Logging). Since the 
<code>LoggingOutInterceptor</code> is in <code>PRE_STREAM</code> phase (but 
<code>PRE_STREAM</code> phase is removed in <code>MESSAGE</code> mode), you 
have to configure <code>LoggingOutInterceptor</code> to be run during the 
<code>WRITE</code> phase. The following is an example.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
    &lt;bean id=&quot;loggingOutInterceptor&quot; 
class=&quot;org.apache.cxf.interceptor.LoggingOutInterceptor&quot;&gt;
         &lt;!--  it really should have been user-prestream but CXF does have 
such phase! --&gt;

Modified: websites/production/camel/content/cxfrs.html
==============================================================================
--- websites/production/camel/content/cxfrs.html (original)
+++ websites/production/camel/content/cxfrs.html Fri Oct 21 11:21:26 2016
@@ -102,7 +102,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="brush: java; gutter: false; theme: Default" 
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.&#160; The 
implementation caches CXF clients or ClientFactoryBean in CxfProvider and 
CxfRsProvider.&#160; 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. <strong>deprecated</strong> 
use defaultBus option from Camel 2.16 onwards. 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"><code>defaultBus</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span>Will set 
the default bus when CXF endpoint create a bus by itself</span></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>defaultBus=true</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 col
 span="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="confluenceTd"><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> =&gt; see 
the <a shape="rect" 
href="#CXFRS-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request 
with th
 e Simple Binding Style</a> below.</li><li><code>Default</code> =&gt; 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> =&gt; 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="confluenc
 eTd"><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="confluenceTd"><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="c
 onfluenceTd"><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=#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>outFaultIntercetpros</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 
1.4285715;">Since Camel 2.12.4</stron
 g><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="confluenceTd"><p><code>continuationTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 
1.4285715;"><strong>Since</strong>&#160;</span><strong style="line-height: 
1.4285715;">Camel 2.14.0&#160;</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&#160;</span><strong s
 tyle="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="con
 fluenceTd">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>Since 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"><code>propagateContexts</code></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">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>loggingFeatureEnable
 d</code></td><td colspan="1" rowspan="1" class="confluenceTd">This option 
enables CXF Logging Feature which writes inbound and outbound REST messages to 
log.</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</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"><code>skipFaultLogging</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">This option controls whether the 
<code>PhaseInterceptorChain</code> skips logging the Fault that it 
catches.</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</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"><code>loggingSizeLimit</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">To limit the total size of number of bytes the 
logger will output when l
 ogging feature has been enabled.</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>0</code></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-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.&#160; The 
implementation caches CXF clients or ClientFactoryBean in CxfProvider and 
CxfRsProvider.&#160; 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. <strong>deprecated</strong> 
use defaultBus option from Camel 2.16 onwards. 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"><code>defaultBus</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span>Will set 
the default bus when CXF endpoint create a bus by itself</span></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>defaultBus=true</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 col
 span="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="confluenceTd"><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> =&gt; see 
the <a shape="rect" 
href="#CXFRS-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request 
with th
 e Simple Binding Style</a> below.</li><li><code>Default</code> =&gt; 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> =&gt; 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="confluenc
 eTd"><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="confluenceTd"><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="c
 onfluenceTd"><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=#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>outFaultIntercetpros</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 
1.4285715;">Since Camel 2.12.4</stron
 g><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="confluenceTd"><p><code>continuationTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 
1.4285715;"><strong>Since</strong>&#160;</span><strong style="line-height: 
1.4285715;">Camel 2.14.0&#160;</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&#160;</span><strong s
 tyle="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="con
 fluenceTd">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>Since 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"><code>propagateContexts</code></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">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>loggingFeatureEnable
 d</code></td><td colspan="1" rowspan="1" class="confluenceTd">This option 
enables CXF Logging Feature which writes inbound and outbound REST messages to 
log.</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</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"><code>skipFaultLogging</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">This option controls whether the 
<code>PhaseInterceptorChain</code> skips logging the Fault that it 
catches.</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</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"><code>loggingSizeLimit</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">To limit the total size of number of bytes the 
logger will output when l
 ogging feature has been enabled.</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>0</code></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>cookieHandler</code></td><td colspan="1" rowspan="1" 
class="confluenceTd">Since <strong>Camel 2.19.0</strong> Configure a cookie 
handler to maintain a HTTP session</td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>cookieHandler=#exchangeCookieHandler</code></td><td 
colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><em>None</em></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-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">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;


Reply via email to