blob: d0b07654ff0b63e71448dae99404a2e25c5e8e72 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01
| Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20210801" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis2 &#x2013; </title>
<link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
<link rel="stylesheet" href="../css/site.css" />
<link rel="stylesheet" href="../css/print.css" media="print" />
<script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2"/></a></div>
<div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2021-08-01<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.8.0<span class="divider">|</span></li>
<li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
<li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
<li class="active "></li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Axis2/Java</li>
<li><a href="../index.html" title="Home"><span class="none"></span>Home</a> </li>
<li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li>
<li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
<ul class="nav nav-list">
<li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a> </li>
<li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a> </li>
<li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a> </li>
<li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a> </li>
<li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a> </li>
<li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a> </li>
</ul>
</li>
<li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a> </li>
<li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a> </li>
<li class="nav-header">Documentation</li>
<li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a> </li>
<li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li>
<li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a> </li>
<li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a> </li>
<li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a> </li>
<li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a> </li>
<li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a> </li>
<li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a> </li>
<li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a> </li>
<li class="nav-header">Resources</li>
<li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li>
<li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a> </li>
<li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a> </li>
<li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a> </li>
<li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a> </li>
<li class="nav-header">Get Involved</li>
<li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a> </li>
<li><a href="../svn.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a> </li>
<li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li>
<li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li>
<li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a> </li>
<li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a> </li>
<li class="nav-header">Project Information</li>
<li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li>
<li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li>
<li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a> </li>
<li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a> </li>
<li class="nav-header">Apache</li>
<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a> </li>
<li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li>
<li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li>
<li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<section>
<h2><a name="JMS_Transport"></a>JMS Transport</h2><section>
<h3><a name="Content">Content</a></h3>
<ul>
<li><a href="#JMS_Transport">JMS Transport</a>
<ul>
<li><a href="#Content">Content</a></li>
<li><a href="#Transport_configuration">Transport configuration</a></li>
<li><a href="#Transport_listener">Transport listener</a>
<ul>
<li><a href="#JMS_connections_and_message_dispatching">JMS connections and message dispatching</a></li>
<li><a href="#Service_configuration">Service configuration</a></li>
<li><a href="#Message_context_properties_for_incoming_messages">Message context properties for incoming messages</a></li></ul></li>
<li><a href="#Transport_sender">Transport sender</a>
<ul>
<li><a href="#Endpoint_references">Endpoint references</a></li>
<li><a href="#Message_context_properties_for_outcoming_messages">Message context properties for outcoming messages</a></li></ul></li>
<li><a href="#Content_type_detection">Content type detection</a></li></ul></li></ul></section><section>
<h3><a name="Transport_configuration">Transport configuration</a></h3>
<p>Connection factories are configured using parameters in the transport description in <code>axis2.xml</code>. The syntax is the same for the transport listener and sender. For example, the following configuration sets up the JMS listener with three connection factories:</p>
<div class="source"><pre class="prettyprint">&lt;transportReceiver name=&quot;jms&quot; class=&quot;org.apache.axis2.transport.jms.JMSListener&quot;&gt;
&lt;parameter name=&quot;myTopicConnectionFactory&quot; locked=&quot;false&quot;&gt;
&lt;parameter name=&quot;java.naming.factory.initial&quot; locked=&quot;false&quot;&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name=&quot;java.naming.provider.url&quot; locked=&quot;false&quot;&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name=&quot;transport.jms.ConnectionFactoryJNDIName&quot; locked=&quot;false&quot;&gt;TopicConnectionFactory&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name=&quot;myQueueConnectionFactory&quot; locked=&quot;false&quot;&gt;
&lt;parameter name=&quot;java.naming.factory.initial&quot; locked=&quot;false&quot;&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name=&quot;java.naming.provider.url&quot; locked=&quot;false&quot;&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name=&quot;transport.jms.ConnectionFactoryJNDIName&quot; locked=&quot;false&quot;&gt;QueueConnectionFactory&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name=&quot;default&quot; locked=&quot;false&quot;&gt;
&lt;parameter name=&quot;java.naming.factory.initial&quot; locked=&quot;false&quot;&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name=&quot;java.naming.provider.url&quot; locked=&quot;false&quot;&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name=&quot;transport.jms.ConnectionFactoryJNDIName&quot; locked=&quot;false&quot;&gt;QueueConnectionFactory&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;/transportReceiver&gt;</pre></div>
<p>If a connection factory named <code>default</code> (as shown above) is defined, this would be used for services which does not explicitly specify the connection factory that should be used. The <code>services.xml</code> of a service should indicate the connection factory and the destination name to be associated with. If a destination is not specified, the implementation would create a JMS Queue with the service name. The JMS destination should ideally be created and administered through the JMS provider utilities.</p>
<p>For the JMS sender, only the outer element is different:</p>
<div class="source"><pre class="prettyprint">&lt;transportSender name=&quot;jms&quot; class=&quot;org.apache.axis2.transport.jms.JMSSender&quot;&gt;
...
&lt;/transportSender&gt;</pre></div>
<p>As explained below, for the JMS sender configuration it is not mandatory (but recommended) to specify connection factories.</p>
<p>The parameters that may appear in a connection factory configuration are defined as follows:</p>
<dl>
<dt><code>java.naming.factory.initial</code></dt>
<dd> REQUIRED - JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface. </dd>
<dt><code>java.naming.provider.url</code></dt>
<dd> REQUIRED - URL of the JNDI provider</dd>
<dt><code>transport.jms.ConnectionFactoryJNDIName</code></dt>
<dd> REQUIRED - The JNDI name of the connection factory</dd>
<dt><code>java.naming.security.principal</code></dt>
<dd> JNDI Username</dd>
<dt><code>java.naming.security.credentials</code></dt>
<dd> JNDI password</dd>
<dt><code>transport.Transactionality</code></dt>
<dd> Desired mode of transactionality. possible values are 'none', 'local' or 'jta', while it defaults to 'none'</dd>
<dt><code>transport.UserTxnJNDIName</code></dt>
<dd> JNDI name to be used to require user transaction</dd>
<dt><code>transport.CacheUserTxn</code></dt>
<dd> Whether caching for user transactions should be enabled or not. Possible values are 'true' or 'false', while the value defaults to 'true'</dd>
<dt><code>transport.jms.SessionTransacted</code></dt>
<dd> Whether the JMS session be transacted or not. Possible values are 'true' or 'false', while the value defaults to 'true' if the transactionality is 'local'</dd>
<dt><code>transport.jms.SessionAcknowledgement</code></dt>
<dd> JMS session acknowledgement mode. Possible values are AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED. Default value is AUTO_ACKNOWLEDGE</dd>
<dt><code>transport.jms.ConnectionFactoryType</code></dt>
<dd> Type of the connection factory. Possible values are 'queue' or 'topic' while the default value of 'queue'</dd>
<dt><code>transport.jms.JMSSpecVersion</code></dt>
<dd> JMS API version. Possible values are 1.1 or 1.0.2b, and the default API version is 1.1</dd>
<dt><code>transport.jms.UserName</code></dt>
<dd> The JMS connection username</dd>
<dt><code>transport.jms.Password</code></dt>
<dd> The JMS connection password</dd>
<dt><code>transport.jms.DefaultReplyDestination</code></dt>
<dd> JNDI name of the default reply destination</dd>
<dt><code>transport.jms.DefaultReplyDestinationType</code></dt>
<dd> Default type of the reply destination, if not provided the destination type will be taken as the reply destination type as well</dd>
<dt><code>transport.jms.MessageSelector</code></dt>
<dd> Message selector implementation</dd>
<dt><code>transport.jms.SubscriptionDurable</code></dt>
<dd> Whether the connection factory is subscription durable or not. Possible values are 'true' or 'false', while the value defaults to 'false'</dd>
<dt><code>transport.jms.DurableSubscriberName</code></dt>
<dd> Name of the durable subscriber. This is required if the above parameter is set to 'true'</dd>
<dt><code>transport.jms.PubSubNoLocal</code></dt>
<dd> Whether the messages should be published by the same connection they were received. Possible values are 'true' or 'false', while the value defaults to 'false'</dd>
<dt><code>transport.jms.CacheLevel</code></dt>
<dd> JMS resource cache level. Possible values are 'none', 'connection', 'session', 'consumer', 'producer', 'auto' and defaults to 'auto'</dd>
<dt><code>transport.jms.ReceiveTimeout</code></dt>
<dd> Time to wait for a JMS message during polling. Set this parameter value to a negative integer to wait indefinitely. Set to zero to prevent waiting and the default value is 1000ms</dd>
<dt><code>transport.jms.ConcurrentConsumers</code></dt>
<dd> Number of concurrent threads to be started to consume messages when polling. Defaults to 1, and the value should be a positive integer. For topics it has to be always 1</dd>
<dt><code>transport.jms.MaxConcurrentConsumers</code></dt>
<dd> Maximum number of concurrent threads to use during polling. Defaults to 1, and the value should be a positive integer. For topics it has to be always 1</dd>
<dt><code>transport.jms.IdleTaskLimit</code></dt>
<dd> The number of idle runs per thread before it dies out, which defaults to 10</dd>
<dt><code>transport.jms.MaxMessagesPerTask</code></dt>
<dd> The maximum number of successful message receipts per thread. Defaults to -1 meaning the infinity</dd>
<dt><code>transport.jms.InitialReconnectDuration</code></dt>
<dd> Initial reconnection attempts duration in milliseconds, which defaults to 1000ms</dd>
<dt><code>transport.jms.ReconnectProgressFactor</code></dt>
<dd> Factor by which the reconnection duration will be increased, which defaults to 2.</dd>
<dt><code>transport.jms.MaxReconnectDuration</code></dt>
<dd> Maximum reconnection duration in milliseconds, which defaults to 3600000ms (1 hr)</dd></dl></section><section>
<h3><a name="Transport_listener">Transport listener</a></h3><section>
<h4><a name="JMS_connections_and_message_dispatching">JMS connections and message dispatching</a></h4>
<p>Every deployed service for which the JMS transport is enabled will be associated with a destination (queue or topic) according to the following rules:</p>
<ul>
<li>If the service has a <code>transport.jms.Destination</code> parameter, its value is interpreted as the JNDI name of the destination.</li>
<li>Otherwise the service name is used as the JNDI name of the destination.</li></ul>
<p>At the same time, the connection factory is determined by looking at the service parameter <code>transport.jms.ConnectionFactory</code>. If this parameter is not set, the default value <code>default</code> is assumed. The value of this parameter is interpreted as a logical identifier for the connection factory configuration defined in the transport configuration (see above).</p>
<p>It follows that JMS destinations are statically bound to services. Therefore the transport always predispatches incoming messages to the service the destination is bound to.</p>
<p>The message is dispatched to an operation according to the following rules:</p>
<ul>
<li>The transport looks for a service parameter <code>Operation</code>. If this parameter is not present, the default value <code>urn:mediate</code> is assumed.</li>
<li>If the service has an operation with the corresponding name, the transport predispatches the message to that operation.</li>
<li>If no such operation exists, the message will be dispatched by the Axis2 engine using the configured dispatchers.</li></ul>
<p>In addition, if the JMS message has a property named <code>SOAPAction</code>, the value of this property is interpreted as the SOAP action.</p></section><section>
<h4><a name="Service_configuration">Service configuration</a></h4>
<p>Apart from the following list most of the parameters defined in the global connection factory can be overriden at the service level as well</p>
<dl>
<dt><code>transport.jms.ConnectionFactory</code> (Optional)</dt>
<dd> The JMS connection factory definition (from <code>axis2.xml</code>) to be used to listen for messages for this service.</dd>
<dt><code>transport.jms.Destination</code> (Optional)</dt>
<dd> The JMS destination name (Defaults to a Queue with the service name).</dd>
<dt><code>transport.jms.DestinationType</code> (Optional)</dt>
<dd> The JMS destination type. Accept values 'queue' or 'topic' (default: queue).</dd>
<dt><code>transport.jms.ReplyDestination</code> (Optional)</dt>
<dd> The destination where a reply will be posted.</dd>
<dt><code>transport.jms.ContentType</code> (Optional)</dt>
<dd> Specifies how the transport listener should determine the content type of received messages. This can either be a simple string value, in which case the transport listener assumes that the received messages always have the specified content type, or a set of rules as in the following example:
<div class="source"><pre class="prettyprint">&lt;parameter name=&quot;transport.jms.ContentType&quot;&gt;
&lt;rules&gt;
&lt;jmsProperty&gt;contentType&lt;/jmsProperty&gt;
&lt;jmsProperty&gt;ctype&lt;/jmsProperty&gt;
&lt;default&gt;text/xml&lt;/default&gt;
&lt;/rules&gt;
&lt;/parameter&gt;</pre></div>
<p>The rules are evaluated in turn until the first matches. The following rule types are defined:</p>
<dl>
<dt><code>jmsProperty</code></dt>
<dd> Extract the content type from the specified message property.</dd>
<dt><code>bytesMessage</code><br /><code>textMessage</code></dt>
<dd> Match the corresponding message type. The content type is specified as the value of the rule, e.g. <code>&lt;bytesMessage&gt;binary/octet-stream&lt;/bytesMessage&gt;</code></dd>
<dt><code>default</code></dt>
<dd> Defines the default content type. This rule always matches and should therefore be the last rule in the rule set.</dd></dl>
<p>If none of the rules matches, an error is triggered and the message is not processed. The default value for this property corresponds to the following set of rules:</p>
<div class="source"><pre class="prettyprint">&lt;parameter name=&quot;transport.jms.ContentType&quot;&gt;
&lt;rules&gt;
&lt;jmsProperty&gt;Content-Type&lt;/jmsProperty&gt;
&lt;bytesMessage&gt;application/octet-stream&lt;/bytesMessage&gt;
&lt;textMessage&gt;text/plain&lt;/textMessage&gt;
&lt;/rules&gt;
&lt;/parameter&gt;</pre></div>
<p>This choice preserves compatibility with previous versions of the JMS transport. Note however that <code>Content-Type</code> is not a valid JMS property name and will not work with some JMS providers.</p></dd>
<dt><code>Wrapper</code> (Optional)</dt>
<dd> The wrapper element for pure text or binary messages. Note that this parameter is actually not JMS specific but recognized by the message builders for <code>text/plain</code> and <code>application/octet-stream</code> (which are the respective default content types for JMS text and binary messages).</dd></dl>
<p>Sample <code>services.xml</code>:</p>
<div class="source"><pre class="prettyprint">&lt;service name=&quot;echo&quot;&gt;
&lt;transports&gt;
....
&lt;transport&gt;jms&lt;/transport&gt;
&lt;/transports&gt;
...
&lt;parameter name=&quot;transport.jms.ConnectionFactory&quot; locked=&quot;true&quot;&gt;myTopicConnectionFactory&lt;/parameter&gt;
&lt;parameter name=&quot;transport.jms.Destination&quot; locked=&quot;true&quot;&gt;dynamicTopics/something.TestTopic&lt;/parameter&gt;
&lt;/service&gt;</pre></div></section><section>
<h4><a name="Message_context_properties_for_incoming_messages">Message context properties for incoming messages</a></h4>
<p>For incoming messages, the transport listener will make the following properties available in the message context:</p>
<dl>
<dt><code>TRANSPORT_HEADERS</code></dt>
<dd> This property will contain a map with the JMS message properties.</dd></dl></section></section><section>
<h3><a name="Transport_sender">Transport sender</a></h3><section>
<h4><a name="Endpoint_references">Endpoint references</a></h4>
<p>Endpoint references for the JMS transport must have the following form:</p>
<div class="source"><pre class="prettyprint">jms-epr = &quot;jms:/&quot; jms-dest [ &quot;?&quot; param *( [ &quot;&amp;&quot; param ] ) ]
param = param-name &quot;=&quot; param-value</pre></div>
<p><code>jms-dest</code> is the JNDI name of the destination to send the message to. The parameters are defined as follows:</p>
<dl>
<dt><code>transport.jms.ConnectionFactory</code> (Optional)</dt>
<dd> The JMS connection factory definition (from <code>axis2.xml</code>) to be used to send messages to the endpoint.</dd>
<dt><code>transport.jms.ContentTypeProperty</code></dt>
<dd> The name of the message property to store the content type of messages sent to the endpoint.</dd></dl>
<p>All the above listed parameters under the connection factory configuration are applied to the JMS EPR as well, apart from these.</p>
<p>If no connection factory definition is explicitly specified using the <code>transport.jms.ConnectionFactory</code> parameter, the JMS sender will check if the transport configuration contains a connection factory compatible with the other settings specified in the endpoint URL (<code>transport.jms.ConnectionFactoryJNDIName</code>, <code>java.naming.factory.initial</code>, <code>java.naming.provider.url</code>, <code>java.naming.security.principal</code> and <code>java.naming.security.credentials</code>). If a matching configuration is found, the sender will reuse the cached JMS objects related to that configuration. Otherwise it will execute the JNDI lookup and open a new connection. In that case the connection will be closed immediately after sending the message.</p></section><section>
<h4><a name="Message_context_properties_for_outcoming_messages">Message context properties for outcoming messages</a></h4>
<p>For outgoing messages, the transport sender will recognize the following message context properties:</p>
<dl>
<dt><code>TRANSPORT_HEADERS</code></dt>
<dd> The transport expects a map as value for this property. The entries of this map will be set as properties on the outgoing JMS message.</dd></dl>
<p>Note that all the properties are optional.</p></section></section><section>
<h3><a name="Content_type_detection">Content type detection</a></h3>
<dl>
<dt>Incoming requests</dt>
<dd> The content type of the message is determined according to the settings specified in the <code>transport.jms.ContentType</code> service parameter.</dd>
<dt>Outgoing responses</dt>
<dd> If the content type of the request was determined using the value of a message property, the content type of the response will stored in the same message property.</dd>
<dt>Outgoing requests</dt>
<dd> The content type will be stored in the message property specified by the <code>transport.jms.ContentTypeProperty</code> message context property or the <code>transport.jms.ContentTypeProperty</code> parameter of the endpoint reference.</dd>
<dt>Incoming responses</dt>
<dd> The content type will be extracted from the message property that was used to store the content type of the outgoing request.</dd></dl></section></section>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &copy;2004&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
</div>
</div>
</footer>
</body>
</html>