<!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>