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 Thu Jun  8 22:19:48 
2017
@@ -3545,11 +3545,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.rbtoc1496956720581 {padding: 0px;}
-div.rbtoc1496956720581 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1496956720581 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496960315050 {padding: 0px;}
+div.rbtoc1496960315050 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496960315050 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1496956720581">
+/*]]>*/</style></p><div class="toc-macro rbtoc1496960315050">
 <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>
@@ -5664,11 +5664,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.rbtoc1496956721210 {padding: 0px;}
-div.rbtoc1496956721210 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1496956721210 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496960315480 {padding: 0px;}
+div.rbtoc1496960315480 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496960315480 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1496956721210">
+/*]]>*/</style><div class="toc-macro rbtoc1496960315480">
 <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>
@@ -16869,11 +16869,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.rbtoc1496956746676 {padding: 0px;}
-div.rbtoc1496956746676 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1496956746676 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496960318486 {padding: 0px;}
+div.rbtoc1496960318486 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496960318486 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1496956746676">
+/*]]>*/</style></p><div class="toc-macro rbtoc1496960318486">
 <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>
@@ -20127,11 +20127,11 @@ from(&quot;mina2:tcp://127.0.0.1:&quot;
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><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;from uri=&quot;direct:start&quot;/&gt;
 &lt;to uri=&quot;http://oldhost&quot;/&gt;]]></script>
-</div></div></td></tr></tbody></table></div><p>You can override the HTTP 
endpoint URI by adding a header. Camel will call the <a shape="rect" 
class="external-link" href="http://newhost"; rel="nofollow">http://newhost</a>. 
This is very handy for e.g. REST URLs.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Java DSL</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr></tbody></table></div><p>You can override the HTTP 
endpoint URI by adding a header. Camel will call the <a shape="rect" 
class="external-link" href="http://newhost"; rel="nofollow">http://newhost</a>. 
This is very handy for e.g. REST URLs:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Java DSL</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><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;)
   .setHeader(Exchange.HTTP_URI, 
simple(&quot;http://myserver/orders/${header.orderId}&quot;))
   .to(&quot;http://dummyhost&quot;);]]></script>
-</div></div></td></tr></tbody></table></div><p>URI parameters can either be 
set directly on the endpoint URI or as a header</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Java DSL</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr></tbody></table></div><p>URI parameters can either be 
set directly on the endpoint URI or as a header:</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Java DSL</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><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;)
   .to(&quot;http://oldhost?order=123&amp;detail=short&quot;);
 from(&quot;direct:start&quot;)
@@ -20151,19 +20151,19 @@ from(&quot;direct:start&quot;)
 &lt;to uri=&quot;http://www.google.com&quot;/&gt;
 &lt;to uri=&quot;mock:results&quot;/&gt;
 ]]></script>
-</div></div></td></tr></tbody></table></div><h3 
id="BookInOnePage-HttpEndpointOptions">HttpEndpoint Options</h3><div 
class="confluenceTableSmall"><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>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Option to disable throwing the 
<strong><code>HttpOperationFailedException</code></strong> in case of failed 
responses from the remote server. This allows you to get all responses 
regardless of the HTTP status code.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>bridgeEndpoint</code></p></td><td 
colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If the option 
is&#160;<strong><code>true</code></strong>,&#160;<strong><code>HttpProducer</code></strong>
 will ignore the&#160;<strong><code>Exchange.HTTP_URI</code></strong> header, 
and use the endpoint's URI for request. You may also set 
<strong><code>throwExceptionOnFailure=false</code></strong> to let 
the&#160;<strong><code>HttpProducer</code></strong> send all the fault response 
back. <br clear="none" class="atl-forced-newline"> </p><p>From<strong> Camel 
2.3:</strong> If the option is 
<strong><code>true</code></strong>,&#160;<strong><code>HttpProducer</code></strong>
 and&#160;<strong><code>CamelServlet</code></strong> will skip the gzip 
processing when 
<strong><code>content-encoding=gzip</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>disableStreamCache</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><cod
 e>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong><code>DefaultHttpBinding</code></strong> will 
copy the request input stream into a stream cache and put it into message body 
if this option is false to support read it twice, 
otherwise&#160;<strong><code>DefaultHttpBinding</code></strong> will set the 
request input stream direct into the message body. </p><p>From<strong> Camel 
2.17:</strong> this options is now also support by the producer to allow using 
the response stream directly instead of stream caching as by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><code>httpBindingRef</code></s></span></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><strong>Deprecated and removed in Camel 2.17:</strong> 
Reference to a <code>org.apache.camel.component.http
 .HttpBinding</code> in the <a shape="rect" href="registry.html"><span 
style="color: rgb(255,0,0);">Registry</span></a>. Use the 
<code>httpBinding</code> option instead.</s></span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> Reference to a 
<strong><code>org.apache.camel.component.http.HttpBinding</code></strong> in 
the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><code>httpClientConfigurerRef</code></s></span></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><strong>Deprecated and removed in Camel 2.17:</strong> 
Reference to a <c
 ode>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a 
shape="rect" href="registry.html"><span style="color: 
rgb(255,0,0);">Registry</span></a>. Use the <code>httpClientConfigurer</code> 
option instead.</s></span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> 
Reference to a 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>
 in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClient.XXX</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting options on the <a shape="rect" 
class="external-link" href="http://hc.apache.org/httpclient-3.x/a
 
pidocs/org/apache/commons/httpclient/params/HttpClientParams.html">HttpClientParams</a>.
 For instance <strong><code>httpClient.soTimeout=5000</code></strong> will set 
the <strong><code>SO_TIMEOUT</code></strong> to 5 seconds.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.http.conn.ClientConnectionManager</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>transferException</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> If enabled and 
an <a shape="rect" href="exchange.html">Exchange</a> failed processing on the 
consumer side, and if the caused <strong><code>Exception</code></strong> wa
 s send back serialized in the response as a 
<strong><code>application/x-java-serialized-object</code></strong> content type 
(for example using <a shape="rect" href="jetty.html">Jetty</a> or <a 
shape="rect" href="servlet.html">SERVLET</a> Camel components).</p><p>On the 
producer side the exception will be deserialized and thrown as is, instead of 
the <strong><code>HttpOperationFailedException</code></strong>. The caused 
exception is required to be serialized.</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><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
Reference to a instance of 
<strong><code>org.apache.camel.spi.HeaderFilterStrategy</code></strong> in the 
<a shape="rect" href="registry.html">Registry</a>. It will be used to apply the 
custom&#160;<strong><code>headerFilterStrategy</code></strong> on the new crea
 te <strong><code>HttpEndpoint</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>urlRewrite</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>Producer only</strong> Refers to a custom 
<strong><code>org.apache.camel.component.http.UrlRewrite</code></strong> which 
allows you to rewrite URLs when you bridge/proxy endpoints.</p><p>See more 
details at <a shape="rect" href="urlrewrite.html">UrlRewrite</a> and <a 
shape="rect" 
href="how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html">How to 
use Camel as a HTTP proxy between a client and server</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>eagerCheckContentAvailable</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
 2.15.3/2.16:</strong> <strong>Consumer only</strong> &#160;Whether to eager 
check whether the HTTP requests has content if 
the&#160;<strong><code>content-length</code></strong> header is 0 or not 
present. This can be turned on in case HTTP clients do not send streamed 
data.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>copyHeaders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> &#160;If this 
option is true then&#160;<strong><code>IN</code></strong> exchange headers will 
be copied to&#160;<strong><code>OUT</code></strong> exchange headers according 
to copy strategy. Setting this to false, allows to only include the headers 
from the HTTP response (not propagating&#160;<strong><code>IN</code></strong> 
headers).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>okStatusCodeRange</code></p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p><code>200-299</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> 
The status codes which is considered a success response. The values are 
inclusive. The range must be defined as from-to with the dash 
included.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreResponseBody</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> If this option 
is true, The&#160;<strong><code>HttpProducer</code></strong> won't read 
response body and cache the input stream.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>cookieHandler</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel: 2.19:</strong> 
Configure a cookie handler to maintain a HTTP
  session</p></td></tr></tbody></table></div></div>
+</div></div></td></tr></tbody></table></div><h3 
id="BookInOnePage-HttpEndpointOptions"><code>HttpEndpoint</code> 
Options</h3><div class="confluenceTableSmall"><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>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Option to disable throwing the 
<strong><code>HttpOperationFailedException</code></strong> in case of failed 
responses from the remote server. This allows you to get all responses 
regardless of the HTTP status code.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>bridgeEndpoint</code></p></td><td c
 olspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the option 
is&#160;<strong><code>true</code></strong>,&#160;<strong><code>HttpProducer</code></strong>
 will ignore the&#160;<strong><code>Exchange.HTTP_URI</code></strong> header, 
and use the endpoint's URI for request. You may also set 
<strong><code>throwExceptionOnFailure=false</code></strong> to let 
the&#160;<strong><code>HttpProducer</code></strong> send all the fault response 
back.</p><p>From<strong> Camel 2.3:</strong> If the option is 
<strong><code>true</code></strong>,&#160;<strong><code>HttpProducer</code></strong>
 and&#160;<strong><code>CamelServlet</code></strong> will skip the gzip 
processing when 
<strong><code>content-encoding=gzip</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>disableStreamCache</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspa
 n="1" rowspan="1" 
class="confluenceTd"><p><strong><code>DefaultHttpBinding</code></strong> will 
copy the request input stream into a stream cache and put it into message body 
if this option is false to support read it twice, 
otherwise&#160;<strong><code>DefaultHttpBinding</code></strong> will set the 
request input stream direct into the message body.</p><p>From<strong> Camel 
2.17:</strong> this options is now also support by the producer to allow using 
the response stream directly instead of stream caching as by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><code>httpBindingRef</code></s></span></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><strong>Deprecated and removed in Camel 2.17:</strong> 
Reference to a <code>org.apache.camel.component.http.HttpBinding</code> in the 
<a shap
 e="rect" href="registry.html"><span style="color: 
rgb(255,0,0);">Registry</span></a>. Use the <code>httpBinding</code> option 
instead.</s></span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>From<strong> Camel 2.3:</strong> reference 
to a <strong><code>org.apache.camel.component.http.HttpBinding</code></strong> 
in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><code>httpClientConfigurerRef</code></s></span></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(255,0,0);"><s><strong>Deprecated and removed in Camel 2.17:</strong> 
Reference to a <code>org.apache.camel.componen
 t.http.HttpClientConfigurer</code> in the <a shape="rect" 
href="registry.html"><span style="color: rgb(255,0,0);">Registry</span></a>. 
Use the <code>httpClientConfigurer</code> option 
instead.</s></span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>From <strong>Camel 
2.3:</strong> reference to a 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>
 in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClient.XXX</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting options on the <a shape="rect" 
class="external-link" 
href="http://hc.apache.org/httpclient-3.x/apidocs/org/apache/common
 s/httpclient/params/HttpClientParams.html">HttpClientParams</a>. For instance 
<strong><code>httpClient.soTimeout=5000</code></strong> will set the 
<strong><code>SO_TIMEOUT</code></strong> to 5 seconds.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.http.conn.ClientConnectionManager</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>transferException</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>From <strong>Camel 2.6:</strong> If enabled 
and an <a shape="rect" href="exchange.html">Exchange</a> failed processing on 
the consumer side, and if the caused <strong><code>Exception</code></strong> 
was send back seriali
 zed in the response as a 
<strong><code>application/x-java-serialized-object</code></strong> content type 
(for example using <a shape="rect" href="jetty.html">Jetty</a> or <a 
shape="rect" href="servlet.html">SERVLET</a> Camel components).</p><p>On the 
producer side the exception will be deserialized and thrown as is, instead of 
the <strong><code>HttpOperationFailedException</code></strong>. The caused 
exception is required to be serialized.</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><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>From <strong>Camel 
2.11:</strong> reference to a instance of 
<strong><code>org.apache.camel.spi.HeaderFilterStrategy</code></strong> in the 
<a shape="rect" href="registry.html">Registry</a>. It will be used to apply the 
custom&#160;<strong><code>headerFilterStrategy</code></strong> on the new 
create <strong><co
 de>HttpEndpoint</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>urlRewrite</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>From <strong>Camel 2.11:</strong> 
<strong>Producer only</strong> Refers to a custom 
<strong><code>org.apache.camel.component.http.UrlRewrite</code></strong> which 
allows you to rewrite URLs when you bridge/proxy endpoints.</p><p>See more 
details at <a shape="rect" href="urlrewrite.html">UrlRewrite</a> and <a 
shape="rect" 
href="how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html">How to 
use Camel as a HTTP proxy between a client and server</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>eagerCheckContentAvailable</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>From <strong>Camel 2.15
 .3/2.16:</strong> <strong>Consumer only</strong>!</p><p>Whether to eager check 
whether the HTTP requests has content when 
<strong><code>content-length=0</code></strong> or is not present. This can be 
turned on in case HTTP clients do not send streamed data.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>copyHeaders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> if this option 
is true then&#160;<strong><code>IN</code></strong> exchange headers will be 
copied to&#160;<strong><code>OUT</code></strong> exchange headers according to 
copy strategy. Setting this to <strong><code>false</code></strong>, allows to 
only include the headers from the HTTP response (not 
propagating&#160;<strong><code>IN</code></strong> 
headers).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>okStatusCodeRange</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><code>200-299</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> 
the status codes which is considered a success response. The values are 
inclusive. The range must be defined as from-to with the dash 
included.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreResponseBody</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> if this option 
is <strong><code>true</code></strong>, 
the&#160;<strong><code>HttpProducer</code></strong> won't read the response 
body and cache the input stream.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cookieHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel: 2.19:</strong> conf
 igure a cookie handler to maintain a HTTP 
session</p></td></tr></tbody></table></div></div>
 
 
 <h3 id="BookInOnePage-AuthenticationandProxy">Authentication and 
Proxy</h3><p>The following authentication options can also be set on the 
<strong><code>HttpEndpoint</code></strong>:</p><div 
class="confluenceTableSmall"><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>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>authMethod</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Authentication method, either 
as <strong><code>Basic</code></strong>, <strong><code>Digest</code></strong> or 
<strong><code>NTLM</code></strong>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>authMethodPriority</code></p></td><td 
colspan="1" rowspan
 ="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Priority of authentication methods. Is a 
list separated with comma.</p><p>For example: 
<code><strong>Basic</strong>,<strong>Digest</strong></code> to exclude 
<strong><code>NTLM</code></strong>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>authUsername</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Username for 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>authPassword</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Password for 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>authDomain</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Domain 
for&#160;<strong><code>NTLM</code></strong> 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>authHost</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Optional host 
for&#160;<strong><code>NTLM</code></strong> 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyHost</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The proxy host name.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyPort</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The proxy port number.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd
 "><p><code>proxyAuthMethod</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Authentication method for proxy, either as 
<strong><code>Basic</code></strong>, <strong><code>Digest</code></strong> or 
<strong><code>NTLM</code></strong>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>proxyAuthUsername</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Username for proxy 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyAuthPassword</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Password for proxy 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyAuthDomain</code></p></td><td colspan="1" r
 owspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Domain for 
proxy&#160;<strong><code>NTLM</code></strong> 
authentication.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyAuthHost</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Optional host for 
proxy&#160;<strong><code>NTLM</code></strong> 
authentication.</p></td></tr></tbody></table></div></div>
 
 
-<p>When using authentication you <strong>must</strong> provide the choice of 
method for the <strong><code>authMethod</code></strong> or 
<strong><code>authProxyMethod</code></strong> options. You can configure the 
proxy and authentication details on either the 
<strong><code>HttpComponent</code></strong> or the 
<strong><code>HttpEndoint</code></strong>. Values provided on the 
<strong><code>HttpEndpoint</code></strong> will take precedence over 
<strong><code>HttpComponent</code></strong>. Its most likely best to configure 
this on the <strong><code>HttpComponent</code></strong> which allows you to do 
this once.</p><p>The <a shape="rect" href="http.html">HTTP</a> component uses 
convention over configuration which means that if you have not explicit set a 
<strong><code>authMethodPriority</code></strong> then it will fallback and use 
the select(ed) <strong><code>authMethod</code></strong> as priority as well. So 
if you use <strong><code>authMethod.Basic</code></strong> then the <strong><co
 de>auhtMethodPriority</code></strong> will be 
<strong><code>Basic</code></strong> only.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><strong>Note</strong>:&#160;<strong><code>camel-http</code></strong>
 is based on HttpClient v3.x and as such has only <a shape="rect" 
class="external-link" 
href="http://hc.apache.org/httpclient-3.x/authentication.html#NTLM";>limited 
support</a> for what is known as NTLMv1, the early version of the NTLM 
protocol. It does not support NTLMv2 at all. 
<strong><code>camel-http4</code></strong> has support for 
NTLMv2.</div></div><h3 id="BookInOnePage-HttpComponentOptions">HttpComponent 
Options</h3><div class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" row
 span="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpBinding</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpConnectionManager</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan=
 "1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.commons.httpclient.HttpConnectionManager</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpConfiguration</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpConfiguration.</code></strong></p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><code>allowJavaSerializedObject</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 
2.16.1/2.15.5:</strong>&#160;Whether to allow java serialization when a request 
uses 
<strong><code>context-type=application/x-java-serialized-object</code></strong>.</p><p>If
 you enable this then be aware that Java will deserialize the incoming data 
from the request to Java and that can 
 be a potential security risk.</p></td></tr></tbody></table></div></div>
+<p>When using authentication you <strong>must</strong> provide the choice of 
method for the <strong><code>authMethod</code></strong> or 
<strong><code>authProxyMethod</code></strong> options. You can configure the 
proxy and authentication details on either the 
<strong><code>HttpComponent</code></strong> or the 
<strong><code>HttpEndoint</code></strong>. Values provided on the 
<strong><code>HttpEndpoint</code></strong> will take precedence over 
<strong><code>HttpComponent</code></strong>. Its most likely best to configure 
this on the <strong><code>HttpComponent</code></strong> which allows you to do 
this once.</p><p>The <a shape="rect" href="http.html">HTTP</a> component uses 
convention over configuration which means that if you have not explicit set a 
<strong><code>authMethodPriority</code></strong> then it will fallback and use 
the select(ed) <strong><code>authMethod</code></strong> as priority as well. So 
if you use <strong><code>authMethod.Basic</code></strong> then the <strong><co
 de>auhtMethodPriority</code></strong> will be 
<strong><code>Basic</code></strong> only.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><strong>Note</strong>:&#160;<strong><code>camel-http</code></strong>
 is based on HttpClient v3.x and as such has only <a shape="rect" 
class="external-link" 
href="http://hc.apache.org/httpclient-3.x/authentication.html#NTLM";>limited 
support</a> for what is known as NTLMv1, the early version of the NTLM 
protocol. It does not support NTLMv2 at all. 
<strong><code>camel-http4</code></strong> has support for 
NTLMv2.</div></div><h3 
id="BookInOnePage-HttpComponentOptions"><code>HttpComponent</code> 
Options</h3><div class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th co
 lspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th 
colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>httpBinding</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpBinding</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpConnectionManager</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan
 ="1" rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.commons.httpclient.HttpConnectionManager</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>httpConfiguration</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>To use a custom 
<strong><code>org.apache.camel.component.http.HttpConfiguration.</code></strong></p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><code>allowJavaSerializedObject</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 
2.16.1/2.15.5:</strong>&#160;Whether to allow java serialization when a request 
uses 
<strong><code>context-type=application/x-java-serialized-object</code></strong>.</p><p>If
 you enable this then be aware that Java will deserialize the incoming data 
from the request to Java 
 and that can be a potential security 
risk.</p></td></tr></tbody></table></div></div>
 
 
-<p><code>HttpConfiguration</code> contains all the options listed in the table 
above under the section <em>HttpConfiguration - Setting Authentication and 
Proxy</em>.</p><h3 id="BookInOnePage-MessageHeaders.6">Message Headers</h3><div 
class="confluenceTableSmall"><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_URI</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>URI to call. Will override 
existing URI set directly on the endpoint. <span>This URI is the URI of the 
HTTP server to call. Its not the same as the Camel endpoint URI, where you can 
configure endpoint options such as security etc. Thi
 s header does not support that, its only the URI of the HTTP 
server.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_METHOD</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>HTTP Method / Verb to use 
(<code>GET</code>/<code>POST</code>/<code>PUT</code>/<code>DELETE</code>/<code>HEAD</code>/<code>OPTIONS</code>/<code>TRACE</code>)</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_PATH</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Request URI's path, the header will be used 
to build the request URI with the <strong><code>HTTP_URI</code></strong>. 
<strong>Camel 2.3.0:</strong> If the path is start with "/", http producer will 
try to find the relative path based on 
the&#160;<strong><code>Exchange.HTTP_BASE_
 URI</code></strong> header or the 
<strong><code>exchange.getFromEndpoint().getEndpointUri();</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_QUERY</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>URI parameters. Will override 
existing URI parameters set directly on the endpoint.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_RESPONSE_CODE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP response code from the 
external server. Is&#160;<strong><code>200</code></strong> for 
OK.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_CHARACTER_ENCODING</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p>Character 
encoding.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.CONTENT_TYPE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content type. Is set 
on both the&#160;<strong><code>IN</code></strong> 
and&#160;<strong><code>OUT</code></strong> message to provide a content type, 
such as <strong><code>text/html</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.CONTENT_ENCODING</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content encoding. Is 
set on both the&#160;<strong><code>IN</code></strong> 
and&#160;<strong><code>OUT</code></strong> message to provide a content 
encoding, such as <strong><code>gzip</code>.</strong></p></td></tr><tr><td 
colspan
 ="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_SERVLET_REQUEST</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>HttpServletRequest</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The 
<strong><code>HttpServletRequest</code></strong> object.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_SERVLET_RESPONSE</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>HttpServletResponse</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The 
<strong><code>HttpServletResponse</code></strong> object.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_PROTOCOL_VERSION</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> You 
can set the HTTP protocol version with this header, e.g., 
<strong><code>HTTP/1.0</code>
 </strong>. If you didn't specify the 
header,&#160;<strong><code>HttpProducer</code></strong> will use the default 
value 
<strong><code>HTTP/1.1</code></strong>.</p></td></tr></tbody></table></div></div>
+<p><strong><code>HttpConfiguration</code></strong> contains all the options 
listed in the table above under the section <em>HttpConfiguration - Setting 
Authentication and Proxy</em>.</p><h3 
id="BookInOnePage-MessageHeaders.6">Message Headers</h3><div 
class="confluenceTableSmall"><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_URI</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>URI to call. Will override 
existing URI set directly on the endpoint. <span>This URI is the URI of the 
HTTP server to call. Its not the same as the Camel endpoint URI, where you can 
configure endpoint options such as 
 security etc. This header does not support that, its only the URI of the HTTP 
server.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_METHOD</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>HTTP method/verb to 
use.</p><p>Can be one 
of:</p><ul><li><strong><code>GET</code></strong></li><li><strong><code>POST</code></strong></li><li><strong><code>PUT</code></strong></li><li><strong><code>DELETE</code></strong></li><li><strong><code>HEAD</code></strong></li><li><strong><code>OPTIONS</code></strong></li><li><strong><code>TRACE</code></strong></li></ul></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_PATH</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The request URI's path. The header will be 
used to build the
  request URI with the <strong><code>HTTP_URI</code></strong>. 
</p><p>From<strong> Camel 2.3.0:</strong> if the path starts with a 
<strong><code>/</code></strong>, 
the&#160;<strong><code>HttpProducer</code></strong> will try to find the 
relative path based on 
the&#160;<strong><code>Exchange.HTTP_BASE_URI</code></strong> header or the 
<strong><code>exchange.getFromEndpoint().getEndpointUri();</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_QUERY</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>URI parameters. Will override 
existing URI parameters set directly on the endpoint.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_RESPONSE_CODE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP resp
 onse code from the external server. Is&#160;<strong><code>200</code></strong> 
for OK.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_CHARACTER_ENCODING</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Character encoding.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>Exchange.CONTENT_TYPE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content type. Is set 
on both the&#160;<strong><code>IN</code></strong> 
and&#160;<strong><code>OUT</code></strong> message to provide a content type, 
such as <strong><code>text/html</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.CONTENT_ENCODING</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</cod
 e></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP 
content encoding. Is set on both the&#160;<strong><code>IN</code></strong> 
and&#160;<strong><code>OUT</code></strong> message to provide a content 
encoding, such as <strong><code>gzip</code>.</strong></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_SERVLET_REQUEST</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>HttpServletRequest</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The 
<strong><code>HttpServletRequest</code></strong> object.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Exchange.HTTP_SERVLET_RESPONSE</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>HttpServletResponse</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The 
<strong><code>HttpServletResponse</code></strong> object.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>Exchange.HTTP_PROTOCOL_VERSION</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>From<strong> Camel 2.5:</strong> You can set the HTTP 
protocol version with this header, e.g., 
<strong><code>HTTP/1.0</code></strong>. If the header is not present the 
<strong><code>HttpProducer</code></strong> will use the default value 
<strong><code>HTTP/1.1</code></strong>.</p></td></tr></tbody></table></div></div>
 
 
-<p>The header name above are constants. For the spring DSL you have to use the 
value of the constant instead of the name.</p><h3 
id="BookInOnePage-MessageBody.1">Message Body</h3><p>Camel will store the HTTP 
response from the external server on the&#160;<strong><code>OUT</code></strong> 
body. All headers from the&#160;<strong><code>IN</code></strong> message will 
be copied to the&#160;<strong><code>OUT</code></strong> message, so headers are 
preserved during routing. Additionally Camel will add the HTTP response headers 
as well to the&#160;<strong><code>OUT</code></strong> message headers.</p><h3 
id="BookInOnePage-ResponseCode">Response Code</h3><p>Camel will handle 
according to the HTTP response code:</p><ul class="alternate"><li>Response code 
is in the range <strong><code>100..299</code></strong>, Camel regards it as a 
success response.</li><li>Response code is in the range 
<strong><code>300..399</code></strong>, Camel regards it as a redirection 
response and will throw a <strong>
 <code>HttpOperationFailedException</code></strong> with the 
information.</li><li><p>Response code is <strong><code>400+</code></strong>, 
Camel regards it as an external server failure and will throw a 
<strong><code>HttpOperationFailedException</code></strong> with the 
information.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><p 
class="title">throwExceptionOnFailure</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The option, 
<strong><code>throwExceptionOnFailure</code>, </strong>can be set to 
<strong><code>false</code></strong> to prevent the 
<strong><code>HttpOperationFailedException</code></strong> from being thrown 
for failed response codes. This allows you to get any response from the remote 
server.<br clear="none"> There is a sample below demonstrating 
this.</p></div></div></li></ul><h3 
id="BookInOnePage-HttpOperationFailedException">HttpOpera
 tionFailedException</h3><p>This exception contains the following 
information:</p><ul class="alternate"><li>The HTTP status code.</li><li>The 
HTTP status line (text of the status code).</li><li>Redirect location, if 
server returned a redirect.</li><li>Response body as a 
<strong><code>java.lang.String</code></strong>, if server provided a body as 
response.</li></ul><h3 id="BookInOnePage-CallingusingGETorPOST">Calling 
using&#160;<code>GET</code> or&#160;<code>POST</code></h3><p>The following 
algorithm is used to determine if either <strong><code>GET</code></strong> or 
<strong><code>POST</code></strong> HTTP method should be used:</p><ol><li>Use 
method provided in header.</li><li><strong><code>GET</code></strong> if query 
string is provided in header.</li><li><strong><code>GET</code></strong> if 
endpoint is configured with a query 
string.</li><li><strong><code>POST</code></strong> if there is data to send 
(body is not null).</li><li><strong><code>GET</code></strong> 
otherwise.</li></ol>
 <h3 
id="BookInOnePage-HowAccesstheHttpServletRequestandHttpServletResponse">How 
Access the <code>HttpServletRequest</code> 
and&#160;<code>HttpServletResponse</code></h3><p>You can get access to these 
two using the Camel type converter system using:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><strong>Note</strong>: The header 
names above are constants. For the spring DSL you have to use the value of the 
constant instead of the name.</p></div></div><h3 
id="BookInOnePage-MessageBody.1">Message Body</h3><p>Camel will store the HTTP 
response from the external server on the&#160;<strong><code>OUT</code></strong> 
body. All headers from the&#160;<strong><code>IN</code></strong> message will 
be copied to the&#160;<strong><code>OUT</code></strong> message, so headers are 
preserved during routing. Additionally Camel will add the HTTP response headers 
as well to the&#160;<strong><code>OUT</code></strong> message headers.</p><h3 
id="BookInOnePage-ResponseCode">Response Code</h3><p>Camel will handle 
according to the HTTP response code:</p><ul class="alternat
 e"><li>Response code is in the range <strong><code>100..299</code></strong>, 
Camel regards it as a success response.</li><li>Response code is in the range 
<strong><code>300..399</code></strong>, Camel regards it as a redirection 
response and will throw a 
<strong><code>HttpOperationFailedException</code></strong> with the 
information.</li><li><p>Response code is <strong><code>400+</code></strong>, 
Camel regards it as an external server failure and will throw a 
<strong><code>HttpOperationFailedException</code></strong> with the 
information.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><p 
class="title">throwExceptionOnFailure</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The option, 
<strong><code>throwExceptionOnFailure</code>, </strong>can be set to 
<strong><code>false</code></strong> to prevent the 
<strong><code>HttpOperationFailedException</code
 ></strong> from being thrown for failed response codes. This allows you to get 
 >any response from the remote server.<br clear="none"> There is a sample below 
 >demonstrating this.</p></div></div></li></ul><h3 
 >id="BookInOnePage-HttpOperationFailedException"><code>HttpOperationFailedException</code></h3><p>This
 > exception contains the following information:</p><ul 
 >class="alternate"><li>The HTTP status code.</li><li>The HTTP status line 
 >(text of the status code).</li><li>Redirect location, if server returned a 
 >redirect.</li><li>Response body as a 
 ><strong><code>java.lang.String</code></strong>, if server provided a body as 
 >response.</li></ul><h3 id="BookInOnePage-CallingUsingGETorPOST">Calling 
 >Using&#160;<code>GET</code> or&#160;<code>POST</code></h3><p>The following 
 >algorithm is used to determine if either <strong><code>GET</code></strong> or 
 ><strong><code>POST</code></strong> HTTP method should be used:</p><ol><li>Use 
 >method provided in header.</li><li><strong><code>GET</code></strong> if
  query string is provided in header.</li><li><strong><code>GET</code></strong> 
if endpoint is configured with a query 
string.</li><li><strong><code>POST</code></strong> if there is data to send 
(body is not null).</li><li><strong><code>GET</code></strong> 
otherwise.</li></ol><h3 
id="BookInOnePage-HowToAccessTheHttpServletRequestandHttpServletResponse">How 
To Access The <code>HttpServletRequest</code> 
and&#160;<code>HttpServletResponse</code></h3><p>You can get access to these 
two using the Camel type converter system using:</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[HttpServletRequest request = 
exchange.getIn().getBody(HttpServletRequest.class);
 HttpServletRequest response = 
exchange.getIn().getBody(HttpServletResponse.class);
 ]]></script>
@@ -20200,7 +20200,7 @@ HttpServletRequest response = exchange.g
    Message out = exchange.getOut();
    int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, 
Integer.class);
 ]]></script>
-</div></div><h3 
id="BookInOnePage-UsingthrowExceptionOnFailure=falsetogetanyresponseback">Using 
<code>throwExceptionOnFailure=false</code> to get any response back</h3><p>In 
the route below we want to route a message that we <a shape="rect" 
href="content-enricher.html">enrich</a> with data returned from a remote HTTP 
call. As we want any response from the remote server, we set the 
<strong><code>throwExceptionOnFailure=false</code></strong> so we get any 
response in the <strong><code>AggregationStrategy</code></strong>. As the code 
is based on a unit test that simulates a HTTP status code 404, there is some 
assertion code etc.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookInOnePage-UsingthrowExceptionOnFailure=falseToObtainAllServerResponses">Using
 <code>throwExceptionOnFailure=false</code> To Obtain All Server 
Responses</h3><p>In the route below we want to route a message that we <a 
shape="rect" href="content-enricher.html">enrich</a> with data returned from a 
remote HTTP call. As we want all responses from the remote server, we set the 
<strong><code>throwExceptionOnFailure=false</code></strong> so we get any 
response in the <strong><code>AggregationStrategy</code></strong>. As the code 
is based on a unit test that simulates a HTTP status code 404, there is some 
assertion code etc.</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[
 // We set throwExceptionOnFailure to false to let Camel return any response 
from the remove HTTP server without thrown
 // HttpOperationFailedException in case of failures.
@@ -20224,7 +20224,7 @@ from(&quot;jetty://http://localhost:8222
             }
         });
 ]]></script>
-</div></div><h3 id="BookInOnePage-DisablingCookies">Disabling 
Cookies</h3><p>To disable cookies you can set the HTTP Client to ignore cookies 
by adding this URI option:<br clear="none"> 
<strong><code>httpClient.cookiePolicy=ignoreCookies</code></strong></p><h3 
id="BookInOnePage-AdvancedUsage">Advanced Usage</h3><p>If you need more control 
over the HTTP producer you should use the 
<strong><code>HttpComponent</code></strong> where you can set various classes 
to give you custom behavior.</p><h4 
id="BookInOnePage-SettingMaxConnectionsPerHost">Setting 
MaxConnectionsPerHost</h4><p>The <a shape="rect" href="http.html">HTTP</a> 
Component has a 
<strong><code>org.apache.commons.httpclient.HttpConnectionManager</code></strong>
 where you can configure various global configuration for the given component. 
By global, we mean that any endpoint the component creates has the same shared 
<strong><code>HttpConnectionManager</code></strong>. So, if we want to set a 
different value for the max connectio
 n per host, we need to define it on the HTTP component and <em>not</em> on the 
endpoint URI that we usually use. So here comes:</p><p>First, we define the 
<strong><code>http</code></strong> component in Spring XML. Yes, we use the 
same scheme name, <strong><code>http</code></strong>, because otherwise Camel 
will auto-discover and create the component with default settings. What we need 
is to overrule this so we can set our options. In the sample below we set the 
max connection to 5 instead of the default of 2.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-DisablingCookies">Disabling 
Cookies</h3><p>To disable cookies you can set the HTTP Client to ignore cookies 
by adding this URI option:<br clear="none"> 
<strong><code>httpClient.cookiePolicy=ignoreCookies</code></strong></p><h3 
id="BookInOnePage-AdvancedUsage">Advanced Usage</h3><p>If you need more control 
over the HTTP producer you should use the 
<strong><code>HttpComponent</code></strong> where you can set various classes 
to give you custom behavior.</p><h4 
id="BookInOnePage-SettingMaxConnectionsPerHost">Setting&#160;<code>MaxConnectionsPerHost</code></h4><p>The
 <a shape="rect" href="http.html">HTTP</a> Component has a 
<strong><code>org.apache.commons.httpclient.HttpConnectionManager</code></strong>
 where you can configure various global configuration for the given component. 
By global, we mean that any endpoint the component creates has the same shared 
<strong><code>HttpConnectionManager</code></strong>. So, if we want to set a 
different value for
  the max connection per host, we need to define it on the HTTP component and 
<em>not</em> on the endpoint URI that we usually use. So here 
comes:</p><p>First, we define the <strong><code>http</code></strong> component 
in Spring XML. Yes, we use the same scheme name, 
<strong><code>http</code></strong>, because otherwise Camel will auto-discover 
and create the component with default settings. What we need is to overrule 
this so we can set our options. In the sample below we set the max connection 
to 5 instead of the default of 2.</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;http&quot; 
class=&quot;org.apache.camel.component.http.HttpComponent&quot;&gt;
     &lt;property name=&quot;camelContext&quot; ref=&quot;camel&quot;/&gt;
@@ -20250,7 +20250,7 @@ from(&quot;jetty://http://localhost:8222
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div><h4 id="BookInOnePage-UsingPre-emptiveAuthentication">Using 
Pre-emptive Authentication</h4><p>An end user reported that he had problem with 
authenticating with HTTPS. The problem was eventually resolved when he 
discovered the HTTPS server did not return a HTTP code 401 Authorization 
Required. The solution was to set the following URI option: 
<strong><code>httpClient.authenticationPreemptive=true</code></strong></p><h4 
id="BookInOnePage-AcceptingSelf-signedCertificatesFromRemoteServer">Accepting 
Self-signed Certificates From Remote Server</h4><p>See this <a shape="rect" 
class="external-link" 
href="http://www.nabble.com/Using-HTTPS-in-camel-http-when-remote-side-has-self-signed-cert-td25916878.html";
 rel="nofollow">link</a> from a mailing list discussion with some code to 
outline how to do this with the Apache Commons HTTP API.</p><h4 
id="BookInOnePage-SettingupSSLforHTTPClient">Setting up SSL for HTTP 
Client</h4><h5 id="BookInOnePage-UsingtheJSSEConfigurationUtility.1">Usi
 ng the JSSE Configuration Utility</h5><p>As of Camel 2.8, the HTTP4 component 
supports SSL/TLS configuration through the <a shape="rect" 
href="camel-configuration-utilities.html">Camel JSSE Configuration 
Utility</a>.&#160; This utility greatly decreases the amount of component 
specific code you need to write and is configurable at the endpoint and 
component levels.&#160; The following examples demonstrate how to use the 
utility with the HTTP4 component.</p><p>The version of the Apache HTTP client 
used in this component resolves SSL/TLS information from a global "protocol" 
registry.&#160; This component provides an implementation, 
<strong><code>org.apache.camel.component.http.SSLContextParametersSecureProtocolSocketFactory</code></strong>,
 of the HTTP client's protocol socket factory in order to support the use of 
the Camel JSSE Configuration utility.&#160; The following example demonstrates 
how to configure the protocol registry and use the registered protocol 
information in a route
 .</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h4 id="BookInOnePage-UsingPre-EmptiveAuthentication">Using 
Pre-Emptive Authentication</h4><p>An end user reported that he had problem with 
authenticating with HTTPS. The problem was eventually resolved when he 
discovered the HTTPS server did not return a HTTP code 401 Authorization 
Required. The solution was to set the following URI option: 
<strong><code>httpClient.authenticationPreemptive=true</code></strong></p><h4 
id="BookInOnePage-AcceptingSelf-SignedCertificatesFromRemoteServer">Accepting 
Self-Signed Certificates From Remote Server</h4><p>See this <a shape="rect" 
class="external-link" 
href="http://www.nabble.com/Using-HTTPS-in-camel-http-when-remote-side-has-self-signed-cert-td25916878.html";
 rel="nofollow">link</a> from a mailing list discussion with some code to 
outline how to do this with the Apache Commons HTTP API.</p><h4 
id="BookInOnePage-SettingupSSLforHTTPClient">Setting up SSL for HTTP 
Client</h4><h5 id="BookInOnePage-UsingtheJSSEConfigurationUtility.1">Usi
 ng the JSSE Configuration Utility</h5><p>From <strong>Camel 2.8</strong>: 
the&#160;<strong><code>HTTP4</code></strong> component supports SSL/TLS 
configuration through the <a shape="rect" 
href="camel-configuration-utilities.html">Camel JSSE Configuration 
Utility</a>.&#160; This utility greatly decreases the amount of component 
specific code you need to write and is configurable at the endpoint and 
component levels.&#160; The following examples demonstrate how to use the 
utility with the&#160;<strong><code>HTTP4</code></strong> component.</p><p>The 
version of the Apache HTTP client used in this component resolves SSL/TLS 
information from a global "protocol" registry.&#160; This component provides an 
implementation, 
<strong><code>org.apache.camel.component.http.SSLContextParametersSecureProtocolSocketFactory</code></strong>,
 of the HTTP client's protocol socket factory in order to support the use of 
the Camel JSSE Configuration utility.&#160; The following example demonstrates 
how to 
 configure the protocol registry and use the registered protocol information in 
a route.</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[KeyStoreParameters ksp = new 
KeyStoreParameters();
 ksp.setResource(&quot;/users/home/server/keystore.jks&quot;);
 ksp.setPassword(&quot;keystorePassword&quot;);
@@ -20274,14 +20274,14 @@ Protocol.registerProtocol(&quot;https&qu
 from(&quot;direct:start&quot;)
         
.to(&quot;https://mail.google.com/mail/&quot;).to(&quot;mock:results&quot;);
 ]]></script>
-</div></div><h5 
id="BookInOnePage-ConfiguringApacheHTTPClientDirectly">Configuring Apache HTTP 
Client Directly</h5><p>Basically&#160;<strong><code>camel-http</code></strong> 
component is built on the top of Apache HTTP client, and you can implement a 
custom 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>
 to do some configuration on the HTTP client if you need full control of 
it.</p><p>However if you <em>just</em> want to specify the keystore and 
truststore you can do this with Apache HTTP 
<strong><code>HttpClientConfigurer</code></strong>, for example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h5 
id="BookInOnePage-ConfiguringApacheHTTPClientDirectly">Configuring Apache HTTP 
Client Directly</h5><p>Basically&#160;<strong><code>camel-http</code></strong> 
component is built on the top of Apache HTTP client, and you can implement a 
custom 
<strong><code>org.apache.camel.component.http.HttpClientConfigurer</code></strong>
 to do some configuration on the HTTP client if you need full control of 
it.</p><p>However, if you <em>just</em> want to specify 
the&#160;<strong><code>keystore</code></strong> 
and&#160;<strong><code>truststore</code></strong> you can do this with Apache 
HTTP <strong><code>HttpClientConfigurer</code></strong>, for example:</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[Protocol authhttps = new 
Protocol(&quot;https&quot;, new AuthSSLProtocolSocketFactory(
   new URL(&quot;file:my.keystore&quot;), &quot;mypassword&quot;,
   new URL(&quot;file:my.truststore&quot;), &quot;mypassword&quot;), 443);
 
 Protocol.registerProtocol(&quot;https&quot;, authhttps);
 ]]></script>
-</div></div><p>And then you need to create a class that implements 
<strong><code>HttpClientConfigurer</code></strong>, and registers HTTPS 
protocol providing a keystore or truststore per example above. Then, from your 
camel route builder class you can hook it up like so:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>And then you need to create a class that implements 
<strong><code>HttpClientConfigurer</code></strong>, and registers HTTPS 
protocol providing a&#160;<strong><code>keystore</code></strong> 
or&#160;<strong><code>truststore</code></strong> per example above. Then, from 
your Camel RouteBuilder class you can hook it up like so:</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[HttpComponent httpComponent = 
getContext().getComponent(&quot;http&quot;, HttpComponent.class);
 httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
 ]]></script>
@@ -20292,7 +20292,7 @@ httpComponent.setHttpClientConfigurer(ne
 
 &lt;to 
uri=&quot;https://myhostname.com:443/myURL?httpClientConfigurerRef=myHttpClientConfigurer&quot;/&gt;
 ]]></script>
-</div></div><p>As long as you implement 
the&#160;<strong><code>HttpClientConfigurer</code></strong> and configure your 
keystore and truststore as described above, it will work fine.</p><p></p><h3 
id="BookInOnePage-SeeAlso.42">See Also</h3>
+</div></div><p>As long as you implement 
the&#160;<strong><code>HttpClientConfigurer</code></strong> and configure 
your&#160;<strong><code>keystore</code></strong> 
and&#160;<strong><code>truststore</code></strong> as described above, it will 
work fine.</p><p></p><h3 id="BookInOnePage-SeeAlso.42">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 
class="alternate"><li><a shape="rect" href="jetty.html">Jetty</a></li></ul> <h2 
id="BookInOnePage-iBATIS">iBATIS</h2><p>The <strong>ibatis:</strong> component 
allows you to query, poll, insert, update and delete data in a relational 
database using <a shape="rect" class="external-link" 
href="http://ibatis.apache.org/";>Apache iBATIS</a>.</p><div 
class="confluence-information-macro confluence-information-macro-warning"><p 
class="title">Prefer MyBatis</p><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The Apache iBatis project is no 
longer active. The project is moved outside Apache and is now know as the 
MyBatis p
 roject.<br clear="none">Therefore we encourage users to use <a shape="rect" 
href="mybatis.html">MyBatis</a> instead. This camel-ibatis component will be 
removed in Camel 3.0.</p><p>iBatis do not support Spring 4.x. So you can only 
use Spring 3.x or older with iBatis.</p></div></div><p>Maven users will need to 
add the following dependency to their <code>pom.xml</code> for this 
component:</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;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;

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


Reply via email to