You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2015/07/22 16:20:22 UTC

svn commit: r959169 - in /websites/production/camel/content: book-component-appendix.html book-in-one-page.html cache/main.pageCache cxf.html

Author: buildbot
Date: Wed Jul 22 14:20:21 2015
New Revision: 959169

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/cxf.html

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Wed Jul 22 14:20:21 2015
@@ -997,7 +997,7 @@ commetdComponent.setSslContextParameters
           password="keystorePassword"/>
     </camel:keyManagers>
   </camel:sslContextParameters>...
- 
+?
   <bean id="cometd" class="org.apache.camel.component.cometd.CometdComponent">
     <property name="sslContextParameters" ref="sslContextParameters"/>
   </bean>
@@ -1268,11 +1268,11 @@ template.send("direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul><ul><li><a shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 id="BookComponentAppendix-CXFComponent">CXF Component</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><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 cons
 ume 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><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p></div></div><p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437293926066 {padding: 0px;}
-div.rbtoc1437293926066 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437293926066 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1437574680528 {padding: 0px;}
+div.rbtoc1437574680528 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437574680528 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1437293926066">
+/*]]>*/</style></p><div class="toc-macro rbtoc1437574680528">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" href="#BookComponentAppendix-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>
@@ -1337,7 +1337,7 @@ div.rbtoc1437293926066 li {margin-left:
     
 &lt;/bean&gt;
 ]]></script>
-</div></div><p>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.<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;route&gt;
     &lt;from uri=&quot;cxf:bean:routerNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy&quot;/&gt;          
@@ -1471,7 +1471,7 @@ public class WriteXmlDeclarationIntercep
 
 }
 ]]></script>
-</div></div><p>You can add a customer interceptor like this and configure it into you camel-cxf endpont</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can add a customer interceptor like this and configure it into you camel-cxf endpont<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;cxf:cxfEndpoint id=&quot;routerEndpoint&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CXFGreeterRouterTest/CamelContext/RouterPort&quot;
  		serviceClass=&quot;org.apache.hello_world_soap_http.GreeterImpl&quot;
@@ -1486,7 +1486,7 @@ public class WriteXmlDeclarationIntercep
  	&lt;/cxf:properties&gt;
 &lt;/cxf:cxfEndpoint&gt;
 ]]></script>
-</div></div><p>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.<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[ // set up the response context which force start document
  Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();
  map.put(&quot;org.apache.cxf.stax.force-start-document&quot;, Boolean.TRUE);
@@ -1611,7 +1611,7 @@ protected RouteBuilder createRouteBuilde
     &lt;process ref=&quot;InsertResponseOutHeaderProcessor&quot; /&gt;
 &lt;/route&gt;     
 ]]></script>
-</div></div><p>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.<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[
 
 public static class InsertResponseOutHeaderProcessor implements Processor {
@@ -1667,7 +1667,7 @@ from(getRouterEndpointURI()).process(new
 })
 .to(getServiceEndpointURI());
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="BookComponentAppendix-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Since Camel 2.16.0, you can also use the same way as described in sub-chapter "How to get and set SOAP headers in POJO mode" to set or get the SOAP headers.&#160;<h3 id="BookComponentAppendix-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="BookComponentAppendix-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</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[
 SOAP_FAULT = new SoapFault(EXCEPTION_MESSAGE, SoapFault.FAULT_CODE_CLIENT);
 Element detail = SOAP_FAULT.getOrCreateDetail();
@@ -1675,11 +1675,11 @@ Document doc = detail.getOwnerDocument()
 Text tn = doc.createTextNode(DETAIL_TEXT);
 detail.appendChild(tn);
 ]]></script>
-</div></div><p>Then throw it as you like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then throw it as you like<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[
 from(routerEndpointURI).setFaultBody(constant(SOAP_FAULT));
 ]]></script>
-</div></div><p>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.<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[
 from(routerEndpointURI).process(new Processor() {
 
@@ -1693,7 +1693,7 @@ from(routerEndpointURI).process(new Proc
 
 });
 ]]></script>
-</div></div><p>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):<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[
 from(&quot;direct:start&quot;).onException(SoapFault.class).maximumRedeliveries(0).handled(true)
     .process(new Processor() {
@@ -1749,7 +1749,7 @@ from(&quot;direct:start&quot;).onExcepti
      &lt;/cxf:properties&gt;      
      
 ]]></script>
-</div></div><p>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.<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[
 
 Exchange exchange = context.createProducerTemplate().send(&quot;direct:testEndpoint&quot;, new Processor() {
@@ -1802,7 +1802,7 @@ Assert.assertEquals(560, image.getWidth(
 Assert.assertEquals(300, image.getHeight());
 
 ]]></script>
-</div></div><p>You can also consume a Camel message received from a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can also consume a Camel message received from a CXF endpoint in Payload mode.<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[
 public static class MyProcessor implements Processor {
 
@@ -1852,7 +1852,7 @@ public static class MyProcessor implemen
     }
 }
 ]]></script>
-</div></div><p><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.</p><p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="BookComponentAppendix-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.tr
 ansform.Source while being routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints
  created from that component.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="BookComponentAppendix-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.<p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="BookComponentAppendix-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.transform
 .Source while being routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints create
 d from that component.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="BookComponentAppendix-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</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;cxf:cxfEndpoint id=&quot;testEndpoint&quot; address=&quot;http://localhost:9000/SoapContext/SoapAnyPort&quot;&gt;
      &lt;cxf:properties&gt;
        &lt;entry key=&quot;dataFormat&quot; value=&quot;PAYLOAD&quot;/&gt;
@@ -4291,7 +4291,7 @@ public class PatientLookupService {
 ]]></script>
 </div></div><p><strong>sync=true</strong> indicates that this listener is synchronous and therefore will return a HL7 response to the caller. The HL7 codec is setup with <strong>encoder=#hl7encoder </strong>and<strong> decoder=#hl7decoder</strong>. Note that <code>hl7encoder</code> and <code>hl7decoder</code> are just bean IDs, so they could be named differently. The beans can be set in the Spring XML file:</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;hl7decoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory&quot;/&gt;
-    &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
+?   &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
 </div></div><p>The endpoint <strong>hl7NettyListener</strong> can then be used in a route as a consumer, as this Java DSL example illustrates:</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[    from(&quot;hl7NettyListener&quot;).beanRef(&quot;patientLookupService&quot;);
 ]]></script>
@@ -4352,7 +4352,7 @@ String patientId = msg.getQRD().getWhoSu
       .setHeader(&quot;PATIENT_ID&quot;,terser(&quot;QRD-8(0)-1&quot;))
       .to(&quot;mock:test1&quot;);
 
-   // continue processing if extracted field equals a message header
+  ?// continue processing if extracted field equals a message header
    from(&quot;direct:test2&quot;)
       .filter(terser(&quot;QRD-8(0)-1&quot;).isEqualTo(header(&quot;PATIENT_ID&quot;))
       .to(&quot;mock:test2&quot;);
@@ -4625,9 +4625,9 @@ ProtocolSocketFactory factory =
 
 Protocol.registerProtocol(&quot;https&quot;,
         new Protocol(
-        &quot;https&quot;,
-        factory,
-        443));
+??????? &quot;https&quot;,
+??????? factory,
+??????? 443));
 
 from(&quot;direct:start&quot;)
         .to(&quot;https://mail.google.com/mail/&quot;).to(&quot;mock:results&quot;);
@@ -6184,7 +6184,7 @@ but the following listed types were not
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[public class Jt400RouteBuilder extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(“direct:play”);
+       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(?direct:play?);
     }
 }
 ]]></script>

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Wed Jul 22 14:20:21 2015
@@ -3685,11 +3685,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437488267574 {padding: 0px;}
-div.rbtoc1437488267574 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437488267574 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1437574714082 {padding: 0px;}
+div.rbtoc1437574714082 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437574714082 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1437488267574">
+/*]]>*/</style></p><div class="toc-macro rbtoc1437574714082">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-About">About</a></li><li><a shape="rect" href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the Server</a>
@@ -5789,11 +5789,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. Apache Axis 1.4 is a very old and unsupported framework. We encourage users to use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1437488268537 {padding: 0px;}
-div.rbtoc1437488268537 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437488268537 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1437574715278 {padding: 0px;}
+div.rbtoc1437574715278 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437574715278 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1437488268537">
+/*]]>*/</style><div class="toc-macro rbtoc1437574715278">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect" href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect" href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect" href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#BookInOnePage-RunningtheExample">Running the Example</a></li></ul>
@@ -17791,11 +17791,11 @@ template.send(&quot;direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookInOnePage-SeeAlso.28">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul><ul><li><a shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 id="BookInOnePage-CXFComponent">CXF Component</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><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><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p></div></div><p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437488294923 {padding: 0px;}
-div.rbtoc1437488294923 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437488294923 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1437574736517 {padding: 0px;}
+div.rbtoc1437574736517 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437574736517 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1437488294923">
+/*]]>*/</style></p><div class="toc-macro rbtoc1437574736517">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect" href="#BookInOnePage-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>
@@ -17860,7 +17860,7 @@ div.rbtoc1437488294923 li {margin-left:
     
 &lt;/bean&gt;
 ]]></script>
-</div></div><p>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.<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;route&gt;
     &lt;from uri=&quot;cxf:bean:routerNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy&quot;/&gt;          
@@ -17994,7 +17994,7 @@ public class WriteXmlDeclarationIntercep
 
 }
 ]]></script>
-</div></div><p>You can add a customer interceptor like this and configure it into you camel-cxf endpont</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can add a customer interceptor like this and configure it into you camel-cxf endpont<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;cxf:cxfEndpoint id=&quot;routerEndpoint&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CXFGreeterRouterTest/CamelContext/RouterPort&quot;
  		serviceClass=&quot;org.apache.hello_world_soap_http.GreeterImpl&quot;
@@ -18009,7 +18009,7 @@ public class WriteXmlDeclarationIntercep
  	&lt;/cxf:properties&gt;
 &lt;/cxf:cxfEndpoint&gt;
 ]]></script>
-</div></div><p>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.<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[ // set up the response context which force start document
  Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();
  map.put(&quot;org.apache.cxf.stax.force-start-document&quot;, Boolean.TRUE);
@@ -18134,7 +18134,7 @@ protected RouteBuilder createRouteBuilde
     &lt;process ref=&quot;InsertResponseOutHeaderProcessor&quot; /&gt;
 &lt;/route&gt;     
 ]]></script>
-</div></div><p>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.<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[
 
 public static class InsertResponseOutHeaderProcessor implements Processor {
@@ -18190,7 +18190,7 @@ from(getRouterEndpointURI()).process(new
 })
 .to(getServiceEndpointURI());
 ]]></script>
-</div></div><h3 id="BookInOnePage-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="BookInOnePage-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Since Camel 2.16.0, you can also use the same way as described in sub-chapter "How to get and set SOAP headers in POJO mode" to set or get the SOAP headers.&#160;<h3 id="BookInOnePage-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="BookInOnePage-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</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[
 SOAP_FAULT = new SoapFault(EXCEPTION_MESSAGE, SoapFault.FAULT_CODE_CLIENT);
 Element detail = SOAP_FAULT.getOrCreateDetail();
@@ -18198,11 +18198,11 @@ Document doc = detail.getOwnerDocument()
 Text tn = doc.createTextNode(DETAIL_TEXT);
 detail.appendChild(tn);
 ]]></script>
-</div></div><p>Then throw it as you like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then throw it as you like<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[
 from(routerEndpointURI).setFaultBody(constant(SOAP_FAULT));
 ]]></script>
-</div></div><p>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.<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[
 from(routerEndpointURI).process(new Processor() {
 
@@ -18216,7 +18216,7 @@ from(routerEndpointURI).process(new Proc
 
 });
 ]]></script>
-</div></div><p>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):<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[
 from(&quot;direct:start&quot;).onException(SoapFault.class).maximumRedeliveries(0).handled(true)
     .process(new Processor() {
@@ -18272,7 +18272,7 @@ from(&quot;direct:start&quot;).onExcepti
      &lt;/cxf:properties&gt;      
      
 ]]></script>
-</div></div><p>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.<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[
 
 Exchange exchange = context.createProducerTemplate().send(&quot;direct:testEndpoint&quot;, new Processor() {
@@ -18325,7 +18325,7 @@ Assert.assertEquals(560, image.getWidth(
 Assert.assertEquals(300, image.getHeight());
 
 ]]></script>
-</div></div><p>You can also consume a Camel message received from a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can also consume a Camel message received from a CXF endpoint in Payload mode.<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[
 public static class MyProcessor implements Processor {
 
@@ -18375,7 +18375,7 @@ public static class MyProcessor implemen
     }
 }
 ]]></script>
-</div></div><p><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.</p><p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="BookInOnePage-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.transform.
 Source while being routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints created
  from that component.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="BookInOnePage-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.<p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="BookInOnePage-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.transform.Source 
 while being routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints created from t
 hat component.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="BookInOnePage-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</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;cxf:cxfEndpoint id=&quot;testEndpoint&quot; address=&quot;http://localhost:9000/SoapContext/SoapAnyPort&quot;&gt;
      &lt;cxf:properties&gt;
        &lt;entry key=&quot;dataFormat&quot; value=&quot;PAYLOAD&quot;/&gt;

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/cxf.html
==============================================================================
--- websites/production/camel/content/cxf.html (original)
+++ websites/production/camel/content/cxf.html Wed Jul 22 14:20:21 2015
@@ -141,7 +141,7 @@
     
 &lt;/bean&gt;
 ]]></script>
-</div></div><p>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then, your endpoint can reference the <code>CxfHeaderFilterStrategy</code>.<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;route&gt;
     &lt;from uri=&quot;cxf:bean:routerNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy&quot;/&gt;          
@@ -275,7 +275,7 @@ public class WriteXmlDeclarationIntercep
 
 }
 ]]></script>
-</div></div><p>You can add a customer interceptor like this and configure it into you camel-cxf endpont</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can add a customer interceptor like this and configure it into you camel-cxf endpont<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;cxf:cxfEndpoint id=&quot;routerEndpoint&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CXFGreeterRouterTest/CamelContext/RouterPort&quot;
  		serviceClass=&quot;org.apache.hello_world_soap_http.GreeterImpl&quot;
@@ -290,7 +290,7 @@ public class WriteXmlDeclarationIntercep
  	&lt;/cxf:properties&gt;
 &lt;/cxf:cxfEndpoint&gt;
 ]]></script>
-</div></div><p>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Or adding a message header for it like this if you are using <strong>Camel 2.4</strong>.<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[ // set up the response context which force start document
  Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();
  map.put(&quot;org.apache.cxf.stax.force-start-document&quot;, Boolean.TRUE);
@@ -415,7 +415,7 @@ protected RouteBuilder createRouteBuilde
     &lt;process ref=&quot;InsertResponseOutHeaderProcessor&quot; /&gt;
 &lt;/route&gt;     
 ]]></script>
-</div></div><p>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>SOAP headers are propagated to and from Camel Message headers. The Camel message header name is "org.apache.cxf.headers.Header.list" which is a constant defined in CXF (org.apache.cxf.headers.Header.HEADER_LIST). The header value is a List of CXF SoapHeader objects (org.apache.cxf.binding.soap.SoapHeader). The following snippet is the InsertResponseOutHeaderProcessor (that insert a new SOAP header in the response message). The way to access SOAP headers in both InsertResponseOutHeaderProcessor and InsertRequestOutHeaderProcessor are actually the same. The only difference between the two processors is setting the direction of the inserted SOAP header.<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[
 
 public static class InsertResponseOutHeaderProcessor implements Processor {
@@ -471,7 +471,7 @@ from(getRouterEndpointURI()).process(new
 })
 .to(getServiceEndpointURI());
 ]]></script>
-</div></div><h3 id="CXF-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="CXF-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Since Camel 2.16.0, you can also use the same way as described in sub-chapter "How to get and set SOAP headers in POJO mode" to set or get the SOAP headers.&#160;<h3 id="CXF-SOAPheadersarenotavailableinMESSAGEmode">SOAP headers are not available in MESSAGE mode</h3><p>SOAP headers are not available in MESSAGE mode as SOAP processing is skipped.</p><h3 id="CXF-HowtothrowaSOAPFaultfromCamel">How to throw a SOAP Fault from Camel</h3><p>If you are using a <code>camel-cxf</code> endpoint to consume the SOAP request, you may need to throw the SOAP Fault from the camel context.<br clear="none"> Basically, you can use the <code>throwFault</code> DSL to do that; it works for <code>POJO</code>, <code>PAYLOAD</code> and <code>MESSAGE</code> data format.<br clear="none"> You can define the soap fault like this</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[
 SOAP_FAULT = new SoapFault(EXCEPTION_MESSAGE, SoapFault.FAULT_CODE_CLIENT);
 Element detail = SOAP_FAULT.getOrCreateDetail();
@@ -479,11 +479,11 @@ Document doc = detail.getOwnerDocument()
 Text tn = doc.createTextNode(DETAIL_TEXT);
 detail.appendChild(tn);
 ]]></script>
-</div></div><p>Then throw it as you like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then throw it as you like<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[
 from(routerEndpointURI).setFaultBody(constant(SOAP_FAULT));
 ]]></script>
-</div></div><p>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>If your CXF endpoint is working in the <code>MESSAGE</code> data format, you could set the the SOAP Fault message in the message body and set the response code in the message header.<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[
 from(routerEndpointURI).process(new Processor() {
 
@@ -497,7 +497,7 @@ from(routerEndpointURI).process(new Proc
 
 });
 ]]></script>
-</div></div><p>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Same for using POJO data format. You can set the SOAPFault on the out body and also indicate it's a fault by calling Message.setFault(true):<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[
 from(&quot;direct:start&quot;).onException(SoapFault.class).maximumRedeliveries(0).handled(true)
     .process(new Processor() {
@@ -553,7 +553,7 @@ from(&quot;direct:start&quot;).onExcepti
      &lt;/cxf:properties&gt;      
      
 ]]></script>
-</div></div><p>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can produce a Camel message with attachment to send to a CXF endpoint in Payload mode.<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[
 
 Exchange exchange = context.createProducerTemplate().send(&quot;direct:testEndpoint&quot;, new Processor() {
@@ -606,7 +606,7 @@ Assert.assertEquals(560, image.getWidth(
 Assert.assertEquals(300, image.getHeight());
 
 ]]></script>
-</div></div><p>You can also consume a Camel message received from a CXF endpoint in Payload mode.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>You can also consume a Camel message received from a CXF endpoint in Payload mode.<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[
 public static class MyProcessor implements Processor {
 
@@ -656,7 +656,7 @@ public static class MyProcessor implemen
     }
 }
 ]]></script>
-</div></div><p><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.</p><p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="CXF-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.transform.Source whi
 le being routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints created from that
  component.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="CXF-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><strong>Message Mode:</strong> Attachments are not supported as it does not process the message at all.<p><strong>CXF_MESSAGE Mode</strong>: MTOM is supported, and Attachments can be retrieved by Camel Message APIs mentioned above. Note that when receiving a multipart (i.e. MTOM) message the default SOAPMessage to String converter will provide the complete multipart payload on the body. If you require just the SOAP XML as a String, you can set the message body with message.getSOAPPart(), and Camel convert can do the rest of work for you.</p><h3 id="CXF-StreamingSupportinPAYLOADmode">Streaming Support in PAYLOAD mode</h3><p>In 2.8.2, the camel-cxf component now supports streaming of incoming messages when using PAYLOAD mode. Previously, the incoming messages would have been completely DOM parsed. For large messages, this is time consuming and uses a significant amount of memory. Starting in 2.8.2, the incoming messages can remain as a javax.xml.transform.Source while bein
 g routed and, if nothing modifies the payload, can then be directly streamed out to the target destination. For common "simple proxy" use cases (example: from("cxf:...").to("cxf:...")), this can provide very significant performance increases as well as significantly lowered memory requirements.</p><p>However, there are cases where streaming may not be appropriate or desired. Due to the streaming nature, invalid incoming XML may not be caught until later in the processing chain. Also, certain actions may require the message to be DOM parsed anyway (like WS-Security or message tracing and such) in which case the advantages of the streaming is limited. At this point, there are two ways to control the streaming:</p><ul><li>Endpoint property: you can add "allowStreaming=false" as an endpoint property to turn the streaming on/off.</li></ul><ul><li>Component property: the CxfComponent object also has an allowStreaming property that can set the default for endpoints created from that compon
 ent.</li></ul><p>Global system property: you can add a system property of "org.apache.camel.component.cxf.streaming" to "false" to turn if off. That sets the global default, but setting the endpoint property above will override this value for that endpoint.</p><h3 id="CXF-UsingthegenericCXFDispatchmode">Using the generic CXF Dispatch mode</h3><p>From 2.8.0, the camel-cxf component supports the generic <a shape="rect" href="https://cxf.apache.org/docs/jax-ws-dispatch-api.html">CXF dispatch mode</a>&#160;that can transport messages of arbitrary structures (i.e., not bound to a specific XML schema). To use this mode, you simply omit specifying the wsdlURL and serviceClass attributes of the CXF endpoint.</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;cxf:cxfEndpoint id=&quot;testEndpoint&quot; address=&quot;http://localhost:9000/SoapContext/SoapAnyPort&quot;&gt;
      &lt;cxf:properties&gt;
        &lt;entry key=&quot;dataFormat&quot; value=&quot;PAYLOAD&quot;/&gt;