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 21:20:41 
2017
@@ -461,7 +461,7 @@ Camel uses a Java based <a shape="rect"
 <p>Camel makes extensive use of URIs to allow you to refer to endpoints which 
are lazily created by a <a shape="rect" href="component.html">Component</a> if 
you refer to them within <a shape="rect" href="routes.html">Routes</a>.</p>
 
 <div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">important</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>Make sure to read <a shape="rect" 
href="how-do-i-configure-endpoints.html">How do I configure endpoints</a> to 
learn more about configuring endpoints. For example how to refer to beans in 
the <a shape="rect" href="registry.html">Registry</a> or how to use raw values 
for password options, and using <a shape="rect" 
href="using-propertyplaceholder.html">property placeholders</a> 
etc.</p></div></div>
+<p>Make sure to read <a shape="rect" class="unresolved" href="#">How do I 
configure endpoints</a> to learn more about configuring endpoints. For example 
how to refer to beans in the <a shape="rect" href="registry.html">Registry</a> 
or how to use raw values for password options, and using <a shape="rect" 
href="using-propertyplaceholder.html">property placeholders</a> 
etc.</p></div></div>
 
 <h3 id="BookInOnePage-CurrentSupportedURIs">Current Supported URIs</h3>
 
@@ -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.rbtoc1495707570590 {padding: 0px;}
-div.rbtoc1495707570590 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1495707570590 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496956720581 {padding: 0px;}
+div.rbtoc1496956720581 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496956720581 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1495707570590">
+/*]]>*/</style></p><div class="toc-macro rbtoc1496956720581">
 <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.rbtoc1495707571002 {padding: 0px;}
-div.rbtoc1495707571002 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1495707571002 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496956721210 {padding: 0px;}
+div.rbtoc1496956721210 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496956721210 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1495707571002">
+/*]]>*/</style><div class="toc-macro rbtoc1496956721210">
 <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.rbtoc1495707578780 {padding: 0px;}
-div.rbtoc1495707578780 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1495707578780 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1496956746676 {padding: 0px;}
+div.rbtoc1496956746676 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1496956746676 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1495707578780">
+/*]]>*/</style></p><div class="toc-macro rbtoc1496956746676">
 <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>
@@ -20110,7 +20110,7 @@ from(&quot;mina2:tcp://127.0.0.1:&quot;
     .marshal(hl7);
 ]]></script>
 </div></div><p>Note that by using the HL7 DataFormat the Camel message headers 
are populated with the fields from the MSH segment. The headers are 
particularly useful for filtering or content-based routing as shown in the 
example above.</p><p>&#160;</p><p></p><h3 id="BookInOnePage-SeeAlso.41">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> <h2 
id="BookInOnePage-HTTPComponent">HTTP Component</h2><p>The 
<strong>http:</strong> component provides HTTP based <a shape="rect" 
href="endpoint.html">endpoints</a> for consuming external HTTP resources (as a 
client to call external servers using HTTP).</p><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">
+<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> <h2 
id="BookInOnePage-HTTPComponent">HTTP Component</h2><p>The 
<strong>http:</strong> component provides HTTP based <a shape="rect" 
href="endpoint.html">endpoints</a> for consuming external HTTP resources (as a 
client to call external servers using HTTP).</p><p>Maven users will need to add 
the following dependency to their <strong><code>pom.xml</code></strong> 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;
     &lt;artifactId&gt;camel-http&lt;/artifactId&gt;
@@ -20118,16 +20118,16 @@ from(&quot;mina2:tcp://127.0.0.1:&quot;
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookInOnePage-URIformat.27">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookInOnePage-URIFormat.2">URI Format</h3><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[http:hostname[:port][/resourceUri][?param1=value1][&amp;param2=value2]
 ]]></script>
-</div></div><p>Will by default use port 80 for HTTP and 443 for HTTPS.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><p class="title">camel-http vs 
camel-jetty</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can only produce to endpoints 
generated by the HTTP component. Therefore it should never be used as input 
into your camel Routes. To bind/expose an HTTP endpoint via a HTTP server as 
input to a camel route, you can use the <a shape="rect" href="jetty.html">Jetty 
Component</a> or the <a shape="rect" href="servlet.html">Servlet 
Component</a></p></div></div><h3 
id="BookInOnePage-Examples.18">Examples</h3><p>Call the url with the body using 
POST and return response as out message. If body is null call URL using GET and 
return response as out message</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspa
 n="1" class="confluenceTh"><p>Java DSL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Spring 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><p>Will by default use port&#160;<strong><code>80</code></strong> 
for HTTP and&#160;<strong><code>443</code></strong> for HTTPS.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><p class="title">camel-http vs 
camel-jetty</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can only produce to endpoints 
generated by the HTTP component. Therefore it should never be used as input 
into your camel Routes. To bind/expose an HTTP endpoint via a HTTP server as 
input to a camel route, you can use the <a shape="rect" href="jetty.html">Jetty 
Component</a> or the <a shape="rect" href="servlet.html">Servlet 
Component</a></p></div></div><h3 
id="BookInOnePage-Examples.18">Examples</h3><p>Call the URL with the body 
using&#160;<strong><code>POST</code></strong> and return response as 
the&#160;<strong><code>OUT</code></strong> message. If body is&#160;<
 strong><code>null</code></strong> call URL 
using&#160;<strong><code>GET</code></strong> and return response 
as&#160;<strong><code>OUT</code></strong> message:</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Java DSL</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Spring 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://myhost/mypath&quot;);]]></script>
 </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>
@@ -20138,7 +20138,7 @@ from(&quot;direct:start&quot;)
   .setHeader(Exchange.HTTP_QUERY, 
constant(&quot;order=123&amp;detail=short&quot;))
   .to(&quot;http://oldhost&quot;);
 ]]></script>
-</div></div></td></tr></tbody></table></div><p>Set the HTTP request method to 
POST</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Java DSL</p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Spring 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>Set the HTTP request method to 
<strong><code>POST</code></strong>:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Java DSL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Spring 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_METHOD, constant(&quot;POST&quot;))
   .to(&quot;http://www.google.com&quot;);
@@ -20151,27 +20151,27 @@ 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 
<code>HttpOperationFailedException</code> 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" 
rowspan="1" class="
 confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If the option is true , HttpProducer will ignore the 
Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also 
set the * throwExceptionOnFailure* to be false to let the HttpProducer send all 
the fault response back. <br clear="none" class="atl-forced-newline"> 
<strong>Camel 2.3:</strong> If the option is true, HttpProducer and 
CamelServlet will skip the gzip processing if the content-encoding is 
"gzip".</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 colspan="1" 
rowspan="1" class="confluenceTd"><p>DefaultHttpBinding 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 DefaultHttpBinding will set the 
request input stream direct into the m
 essage body. <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><s><code>httpBindingRef</code></s></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><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">Registry</a>. Use the <code>httpBinding</code> option 
instead.</s></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 
<code>org.apache.camel.component.http.HttpBinding</code>
  in the <a shape="rect" 
href="registry.html">Registry</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><s><code>httpClientConfigurerRef</code></s></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><s><strong>Deprecated and removed in Camel 
2.17:</strong> Reference to a 
<code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a 
shape="rect" href="registry.html">Registry</a>. Use the 
<code>httpClientConfigurer</code> option instead.</s></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 
<code>org.apache.camel.component.http.HttpClientConfigurer</code> 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/commons/httpclient/params/HttpClientParams.html";>HttpClientParams</a>.
 For instance <code>httpClient.soTimeout=5000</code> will set the 
<code>SO_TIMEOUT</code> 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 
<code>org.apache.http.conn.ClientConnectionManager</code>.</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 <code>Exception</code> was send back 
serialized in the response as a 
<code>application/x-java-serialized-object</code> content type (for example 
using <a shape="rect" href="jetty.html">Jetty</a> or <a shape="rect" 
href="servlet.html">SERVLET</a> Camel components). On the producer side the 
exception will be deserialized and thrown as is, instead of the 
<code>HttpOperationFailedException</code>. 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 <code>org.apache.ca
 mel.spi.HeaderFilterStrategy</code> in the <a shape="rect" 
href="registry.html">Registry</a>. It will be used to apply the custom 
headerFilterStrategy on the new create HttpEndpoint.</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 
<code>org.apache.camel.component.http.UrlRewrite</code> which allows you to 
rewrite urls when you bridge/proxy endpoints. 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"><code>eagerCheckContentAvailable</code></td><td 
colspan="1" rowspan="1" class="conf
 luenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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 content-length header is 0 or not present. &#160;This can be 
turned on in case HTTP clients do not send streamed data.</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><code>copyHeaders</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>true</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> 
&#160;If this option is true then IN exchange headers will be copied to OUT 
exchange headers according to copy strategy. Setting this to false, allows to 
only include the headers from the HTTP response (not propagating IN 
headers).</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>okStatusCodeRange</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>200-299</code></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><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.</td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>ignoreResponseBody</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> If this option is 
true, The http producer won't read response body and cache the input 
stream.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>cookieHandler</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel: 2.19:</strong> Configure a cookie handler 
to maintain a HTTP session</td></tr></tbody></table></div></div>
+</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>
 
 
-<h3 id="BookInOnePage-AuthenticationandProxy">Authentication and 
Proxy</h3><p>The following authentication options can also be set on the 
HttpEndpoint:</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 <code>Basic</code>, <code>Digest</code> or 
<code>NTLM</code>.</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. For example: <code>Basic,Digest</code> to exclude 
<code>NTLM</code>.</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 NTML 
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 NTML 
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
  <code>Basic</code>, <code>Digest</code> or 
<code>NTLM</code>.</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" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Domain for proxy NTML 
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 NTML 
authentication</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 <code>authMethod</code> or <code>authProxyMethod</code> 
options.<br clear="none"> You can configure the proxy and authentication 
details on either the <code>HttpComponent</code> or the 
<code>HttpEndoint</code>. Values provided on the <code>HttpEndpoint</code> will 
take precedence over <code>HttpComponent</code>. Its most likely best to 
configure this on the <code>HttpComponent</code> 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 
<code>authMethodPriority</code> then it will fallback and use the select(ed) 
<code>authMethod</code> as priority as well. So if you use 
<code>authMethod.Basic</code> then the <code>auhtMethodPriority</code> will be 
<code>Basic</code> only.</p><p>Note: camel-http is based on HttpClient v3.x and 
as such has only <a shape="rect" class="exte
 rnal-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. Camel-http4 has support for 
NTLMv2.</p><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" 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 
<code>org.apache.camel.component.http.HttpBinding</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>h
 ttpClientConfigurer</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 
<code>org.apache.camel.component.http.HttpClientConfigurer</code>.</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 
<code>org.apache.commons.httpclient.HttpConnectionManager</code>.</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 
<code>org.apache.camel.component.http.HttpConfiguration</code></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"><strong>Camel 
 >2.16.1/2.15.5:</strong>&#160;Whether to allow java serialization when a 
 >request uses context-type=application/x-java-serialized-object. This is by 
 >default turned off. 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.</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><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 
(GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE)</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 HTTP_URI. <strong>Camel 
2.3.0:</strong> If the path is start with "/", http producer will try to find 
the relative path based on the Exchange.HTTP_BASE_URI header or the 
exchange.getFromEndpoint().getEndpointUri();</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Ex
 change.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 200 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 IN and OUT 
message to provide a content type, such as 
<code>text/html</code>.</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 IN and OUT message to provide a content encoding, such as 
<code>gzip</code>.</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 <code>HttpServletRequest</code> 
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 
<code>HttpServletResponse</code> 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, eg. "HTTP/1.0". If you 
didn't specify the header, HttpProducer will use the default value 
"HTTP/1.1"</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>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 OUT body. All headers from the IN 
message will be copied to the OUT message, so headers are preserved during 
routing. Additionally Camel will add the HTTP response headers as well to the 
OUT 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 100..299, Camel regards it 
as a success response.</li><li>Response code is in the range 300..399, Camel 
regards it as a redirection response and will throw a 
<code>HttpOperationFailedException</code> with the 
information.</li><li><p>Response code is 400+, Camel regards it as an external 
server failure and will throw a <code>HttpOperationFailedException</code> 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, 
<code>throwExceptionOnFailure</code>, can be set to <code>false</code> to 
prevent the <code>HttpOperationFailedException</code> 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">HttpOperationFailedException</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 <code>java.lang.String</code>, if server provide
 d a body as response</li></ul><h3 
id="BookInOnePage-CallingusingGETorPOST">Calling using GET or POST</h3><p>The 
following algorithm is used to determine if either <code>GET</code> or 
<code>POST</code> HTTP method should be used:<br clear="none"> 1. Use method 
provided in header.<br clear="none"> 2. <code>GET</code> if query string is 
provided in header.<br clear="none"> 3. <code>GET</code> if endpoint is 
configured with a query string.<br clear="none"> 4. <code>POST</code> if there 
is data to send (body is not null).<br clear="none"> 5. <code>GET</code> 
otherwise.</p><h3 
id="BookInOnePage-HowtogetaccesstoHttpServletRequestandHttpServletResponse">How 
to get access to HttpServletRequest and HttpServletResponse</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">
+<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">
 <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>
-</div></div><h3 id="BookInOnePage-Usingclienttimeout-SO_TIMEOUT">Using client 
timeout - SO_TIMEOUT</h3><p>See the unit test in <a shape="rect" 
class="external-link" 
href="http://svn.apache.org/viewvc?view=rev&amp;revision=781775";>this 
link</a></p><h2 id="BookInOnePage-MoreExamples">More Examples</h2><h3 
id="BookInOnePage-ConfiguringaProxy">Configuring a Proxy</h3><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><h3 id="BookInOnePage-UsingClientTimeout-SO_TIMEOUT">Using Client 
Timeout -&#160;<code>SO_TIMEOUT</code></h3><p>See the unit test in <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/viewvc?view=rev&amp;revision=781775";>this 
link</a></p><h2 id="BookInOnePage-MoreExamples">More Examples</h2><h3 
id="BookInOnePage-ConfiguringaProxy">Configuring a Proxy</h3><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?proxyHost=www.myproxy.com&amp;proxyPort=80&quot;);
 ]]></script>
-</div></div></td></tr></tbody></table></div><p>There is also support for proxy 
authentication via the <code>proxyUsername</code> and 
<code>proxyPassword</code> options.</p><h4 
id="BookInOnePage-UsingproxysettingsoutsideofURI">Using proxy settings outside 
of URI</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Java DSL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Spring 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>There is also support for proxy 
authentication via the <strong><code>proxyUsername</code></strong> and 
<strong><code>proxyPassword</code></strong> options.</p><h4 
id="BookInOnePage-UsingProxySettingsOutsideoftheURI">Using Proxy Settings 
Outside of the URI</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Java DSL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Spring 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[ 
context.getProperties().put(&quot;http.proxyHost&quot;, 
&quot;172.168.18.9&quot;);
  context.getProperties().put(&quot;http.proxyPort&quot; &quot;8080&quot;);
 ]]></script>
@@ -20183,15 +20183,15 @@ HttpServletRequest response = exchange.g
       &lt;/properties&gt;
    &lt;/camelContext&gt;
 ]]></script>
-</div></div></td></tr></tbody></table></div><p>Options on Endpoint will 
override options on the context.</p><h3 
id="BookInOnePage-Configuringcharset">Configuring charset</h3><p>If you are 
using <code>POST</code> to send data you can configure the 
<code>charset</code></p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr></tbody></table></div><p>Options 
on&#160;<strong><code>Endpoint</code></strong> will override options on the 
context.</p><h3 
id="BookInOnePage-Configuringcharset">Configuring&#160;<code>charset</code></h3><p>If
 you are using <strong><code>POST</code></strong> to send data you can 
configure the <strong><code>charset</code></strong></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[setProperty(Exchange.CHARSET_NAME, 
&quot;iso-8859-1&quot;);
 ]]></script>
-</div></div><h3 id="BookInOnePage-Samplewithscheduledpoll">Sample with 
scheduled poll</h3><p>The sample polls the Google homepage every 10 seconds and 
write the page to the file <code>message.html</code>:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-SamplewithScheduledPoll">Sample with 
Scheduled Poll</h3><p>The sample polls the Google homepage every 10 seconds and 
write the page to the file <strong><code>message.html</code></strong>:</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;timer://foo?fixedRate=true&amp;delay=0&amp;period=10000&quot;)
     .to(&quot;http://www.google.com&quot;)
     .setHeader(FileComponent.HEADER_FILE_NAME, 
&quot;message.html&quot;).to(&quot;file:target/google&quot;);
 ]]></script>
-</div></div><h3 id="BookInOnePage-GettingtheResponseCode">Getting the Response 
Code</h3><p>You can get the HTTP response code from the HTTP component by 
getting the value from the Out message header with 
<code>Exchange.HTTP_RESPONSE_CODE</code>.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-GettingtheResponseCode">Getting the Response 
Code</h3><p>You can get the HTTP response code from the HTTP component by 
getting the value from the&#160;<strong><code>OUT</code></strong> message 
header with <strong><code>Exchange.HTTP_RESPONSE_CODE</code></strong>:</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[   Exchange exchange = 
template.send(&quot;http://www.google.com/search&quot;, new Processor() {
             public void process(Exchange exchange) throws Exception {
                 exchange.getIn().setHeader(Exchange.HTTP_QUERY, 
constant(&quot;hl=en&amp;q=activemq&quot;));
@@ -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 
<code>throwExceptionOnFailure</code> option to <code>false</code> so we get any 
response in the <code>AggregationStrategy</code>. 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=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">
 <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"> 
<code>httpClient.cookiePolicy=ignoreCookies</code></p><h3 
id="BookInOnePage-AdvancedUsage">Advanced Usage</h3><p>If you need more control 
over the HTTP producer you should use the <code>HttpComponent</code> 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 
<code>org.apache.commons.httpclient.HttpConnectionManager</code> where you can 
configure various global configuration for the given component.<br 
clear="none"> By global, we mean that any endpoint the component creates has 
the same shared <code>HttpConnectionManager</code>. So, if we want to set a 
different value for the max connection per host, we need to define it on the 
HTTP compon
 ent and <strong>not</strong> on the endpoint URI that we usually use. So here 
comes:</p><p>First, we define the <code>http</code> component in Spring XML. 
Yes, we use the same scheme name, <code>http</code>, 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 
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">
 <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-Usingpreemptiveauthentication">Using 
preemptive 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: 
<code>httpClient.authenticationPreemptive=true</code></p><h4 
id="BookInOnePage-Acceptingselfsignedcertificatesfromremoteserver">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">Using the 
JSSE Configur
 ation 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, 
<code>org.apache.camel.component.http.SSLContextParametersSecureProtocolSocketFactory</code>,
 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" styl
 e="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>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">
 <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,25 +20274,25 @@ 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 camel-http component is built on the top of 
Apache HTTP client, and you can implement a custom 
<code>org.apache.camel.component.http.HttpClientConfigurer</code> 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 <code>HttpClientConfigurer</code>, 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 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">
 <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 
<code>HttpClientConfigurer</code>, 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 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">
 <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>
-</div></div><p>If you are doing this using the Spring DSL, you can specify 
your <code>HttpClientConfigurer</code> using the URI. 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[&lt;bean id=&quot;myHttpClientConfigurer&quot;
+</div></div><p>If you are doing this using the Spring DSL, you can specify 
your <strong><code>HttpClientConfigurer</code></strong> using the URI. For 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;myHttpClientConfigurer&quot;
  class=&quot;my.https.HttpClientConfigurer&quot;&gt;
 &lt;/bean&gt;
 
 &lt;to 
uri=&quot;https://myhostname.com:443/myURL?httpClientConfigurerRef=myHttpClientConfigurer&quot;/&gt;
 ]]></script>
-</div></div><p>As long as you implement the HttpClientConfigurer 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 
keystore and truststore as described above, it will work fine.</p><p></p><h3 
id="BookInOnePage-SeeAlso.42">See Also</h3>

[... 472 lines stripped ...]
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.


Reply via email to