Author: buildbot
Date: Sun Jul 19 08:20:50 2015
New Revision: 958910
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/book-component-appendix.html
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/http.html
websites/production/camel/content/http4.html
Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Sun Jul 19
08:20:50 2015
@@ -1268,11 +1268,11 @@ template.send("direct:alias-verify&
]]></script>
</div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
<ul><li><a shape="rect" href="configuring-camel.html">Configuring
Camel</a></li><li><a shape="rect"
href="component.html">Component</a></li><li><a shape="rect"
href="endpoint.html">Endpoint</a></li><li><a shape="rect"
href="getting-started.html">Getting Started</a></li></ul><ul><li><a
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a
shape="rect" href="data-format.html">Data Format</a></li></ul> <h2
id="BookComponentAppendix-CXFComponent">CXF Component</h2><div
class="confluence-information-macro confluence-information-macro-note"><span
class="aui-icon aui-icon-small aui-iconfont-warning
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>When using CXF as a consumer, the
<a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows
you to factor out how message payloads are received from their processing as a
RESTful or SOAP web service. This has the potential of using a multitude of
transports to cons
ume web services. The bean component's configuration is also simpler and
provides the fastest method to implement web services using Camel and
CXF.</p></div></div><div class="confluence-information-macro
confluence-information-macro-tip"><span class="aui-icon aui-icon-small
aui-iconfont-approve confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>When using CXF in streaming modes
(see DataFormat option), then also read about <a shape="rect"
href="stream-caching.html">Stream caching</a>.</p></div></div><p>The
<strong>cxf:</strong> component provides integration with <a shape="rect"
href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services
hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437131876948 {padding: 0px;}
-div.rbtoc1437131876948 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437131876948 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1437293926066 {padding: 0px;}
+div.rbtoc1437293926066 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437293926066 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1437131876948">
+/*]]>*/</style></p><div class="toc-macro rbtoc1437293926066">
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-CXFComponent">CXF Component</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect"
href="#BookComponentAppendix-Options">Options</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions
of the dataformats</a>
@@ -4521,7 +4521,7 @@ from("direct:start")
<to uri="http://www.google.com"/>
<to uri="mock:results"/>
]]></script>
-</div></div></td></tr></tbody></table></div><h3
id="BookComponentAppendix-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 in
to the message body.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>httpBindingRef</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>Deprecated and will be removed in
Camel 3.0:</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.</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><code>httpClientConfigurerRef</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>Deprecated and will be removed in Camel
3.0:</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.</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 p
rocessing 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.camel.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="confluenceTd"><code>false</code></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong>
<strong>Consumer only</strong>  Whether to eager check whether the
HTTP requests has content if the content-length header is 0 or not present.
 This can be turned on in case HTTP clients do not send streamed
data.</td></tr></tbody></table></div></div><h3
id="BookComponentAppendix-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>proxyA
uthMethod</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 colsp
an="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><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 co
nfiguration 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="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. Camel-http4 has support for
NTLMv2.</p><h3 id="BookComponentAppendix-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="conf
luenceTh"><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>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
<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></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="BookComponentAppendix-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" ro
wspan="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.</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.getFr
omEndpoint().getEndpointUri();</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 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="co
nfluenceTd"><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>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="BookComponentAppendix-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="BookComponentAppendix-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 c
onfluence-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="BookComponentAppendix-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 provided a body as
response</li></ul><h3 id="BookComponentAppendix-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="BookComponentAppendix-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">
+</div></div></td></tr></tbody></table></div><h3
id="BookComponentAppendix-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 in
to the message body.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>httpBindingRef</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>Deprecated and will be removed in
Camel 3.0:</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.</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><code>httpClientConfigurerRef</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>Deprecated and will be removed in Camel
3.0:</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.</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 p
rocessing 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.camel.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="confluenceTd"><code>false</code></td><td
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong>
<strong>Consumer only</strong>  Whether to eager check whether the
HTTP requests has content if the content-length header is 0 or not present.
 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>  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></tbody></table></div></div><h3
id="BookComponentAppendix-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 cols
pan="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 authenti
cation</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><p>When using
authentication you <strong>must</strong> provide the choice of method for the
<code>authMethod</code> or <code>a
uthProxyMethod</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="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.
Camel-http4 has support for NTLMv2.</p><h3
id="BookComponentAppendix-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>httpClientConfigurer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td c
olspan="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></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="BookComp
onentAppendix-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.</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>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 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" row
span="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" rowsp
an="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>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="BookComponentAppendix-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="BookComponentAppendix-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="BookComponentAppendix-HttpOperationFailedException">HttpOperationFailedException</h3><p>This
ex
ception 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 provided a body as
response</li></ul><h3 id="BookComponentAppendix-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="BookComponentAppendix-HowtogetaccesstoHttpServletRequestandHttpServletResponse">How
to get access to HttpServletRequest and Ht
tpServletResponse</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>