<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>JMS Transport</title>
  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
</head>

<body lang="en">
<h1><a name="configTransport">JMS Transport</a></h1>

<p>This document is all about the JMS (Java Messaging Service) Transport
support in Apache Axis2, and how it should be configured.</p>

<p><i>Send your feedback or questions to: <a
href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>. Prefix
subject with [Axis2]. To subscribe to mailing list see <a
href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>

<h2>Contents</h2>
<ul>
  <li><a href="#CommonsHTTPTransportSender">Overview</a></li>
  <li><a href="#timeout_config">Configuration</a></li>
  <li><a href="#writing_services">Writing Services to Use The JMS
    Transport</a></li>
</ul>
<a name="CommonsHTTPTransportSender"></a>

<h2>Overview</h2>

<p>A new JMS or Java Messaging Service transport implementation has been
added to Axis2 to overcome some drawbacks of the previous JMS implementation.
Some of the enhancements provided with this new implementation is the ability
to <strong>assign custom JMS destination names or existing JMS destinations
to Axis2 services being deployed</strong>.</p>
<a name="timeout_config"></a>

<h2>Configuration</h2>

<p>To use the JMS transport, the axis2.xml configuration must be setup as
follows in order to configure the JMSListener and the JMS Sender</p>
<pre><strong>axis2.xml</strong>
    &lt;transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener"&gt;
      &lt;parameter name="default" locked="false"&gt;                
        &lt;parameter name="java.naming.factory.initial" locked="false"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
        &lt;parameter name="java.naming.provider.url" locked="false"&gt;tcp://localhost:61616&lt;/parameter&gt;        
        &lt;parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false"&gt;QueueConnectionFactory&lt;/parameter&gt;
      &lt;/parameter&gt;
    &lt;/transportReceiver&gt;

    &lt;transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/&gt;</pre>

<p>The JMS transport receiver configuration allows you to define the default
connection factory (named as "default" ~ JMSConstants.DEFAULT_CONFAC_NAME)
for use by Axis2 services using the JMS transport. This connection factory
would be used by any service which does not explicitly specify a connection
factory name in its services.xml. The configuration required to associate a
(local) Axis2 connection factory to an actual implementation must be provided
as shown above, to specify the JNDI URL, initial context factory class and
the JNDI name of the actual JMS connection factory is to be used. You may
also specify the parameters "java.naming.security.principal" and
"java.naming.security.credentials" if required, to access the actual
connection factory. The example shown above uses an ActiveMQ JMS
implementation.</p>
<pre><strong>axis2.xml</strong>
  &lt;parameter name="myTopicConnectionFactory" locked="false"&gt;</pre>
<pre>    &lt;parameter name="java.naming.factory.initial" locked="false"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;</pre>
<pre>    &lt;parameter name="java.naming.provider.url" locked="false"&gt;tcp://localhost:61616&lt;/parameter&gt;</pre>
<pre>    &lt;parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false"&gt;TopicConnectionFactory&lt;/parameter&gt;</pre>
<pre>  &lt;/parameter&gt;</pre>

<p>If it is required or applicable, you are free to define additional (local)
connection factories to Axis2 as shown above, which your services may use.
For a service to specify that such a connection factory should be used, its
services.xml may specify the following configuration parameter:</p>
<pre>services.xml  
  &lt;parameter name="transport.jms.ConnectionFactory" locked="true"&gt;myTopicConnectionFactory&lt;/parameter&gt;</pre>

<p><strong>Note:</strong> Depending on your JMS implementation, you will need
to make available all required libraries to your Axis2 instance. This example
assumes you are using an ActiveMQ instance. To run the given code samples, it
was required to make available the following JAR files:
activeio-core-3.0-beta1.jar, activemq-core-4.0-RC2.jar,
geronimo-j2ee-management_1.0_spec-1.0.jar at a minimum. It also requires you
to start ActiveMQ separately from Axis2, and then provide the appropriate
configuration settings (e.g. URL) to Axis2.</p>

<p>During initialization, the JMS Listener creates a dedicated JMS message
processor for each connection factory defined, and utilizes a shared thread
pool to process received messages.</p>

<p>A service on an Axis2 instance is deployed on all started transports by
default, unless a list of transports are specified in its services.xml.
Hence, if a service must only be deployed on JMS, you should specify it on
the services.xml as follows:</p>
<pre>  &lt;transports&gt; 
    &lt;transport&gt;jms&lt;/transport&gt; 
  &lt;/transports&gt;</pre>

<p>If the services.xml does not provide an explicit JMS destination name, it
is assumed that the service will listen for messages on a JMS
<strong>Queue</strong> by the same name as the <strong>name of the
service</strong>. If an explicit connection factory definition name has not
been specified, it is assumed that the "default" connection factory
definition configured within the transport receiver be used. To provide a
custom JMS destination name and connection factory, the services.xml could
provide the following optional parameters.</p>
<pre>  &lt;parameter name="transport.jms.ConnectionFactory" locked="true"&gt;myTopicConnectionFactory&lt;/parameter&gt;
  &lt;parameter name="transport.jms.Destination" locked="true"&gt;dynamicTopics/something.TestTopic&lt;/parameter&gt;</pre>
<a name="writing_services"></a>

<h2>Writing Services to Use The JMS Transport</h2>

<p>This section assumes that you are already familiar with <a
href="xmlbased-server.html">writing service implementations</a> for Axis2, and
provides information to enable you to write your own service implementations
which are exposed over JMS.</p>

<p><strong>Echo - Service implementation and services.xml</strong></p>

<p>This sample demonstrates a very simple service which is to be exposed over
JMS. It does not specify a custom connection factory name and hence uses the
"default" as specified in the JMS transport listener configuration. It also
does not specify a custom destination name, and hence would listen to
messages over a JMS Queue named "Echo" (which is the name of the service).
This service will be exposed over all defined Axis2 transports, and the
resulting URL for the service over JMS would be:</p>

<p>jms:/echo?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:61616</p>
<pre><strong>Echo.java</strong></pre>
<pre>  public class Echo {</pre>
<pre>    public String echoString(String in) {</pre>
<pre>      return in;</pre>
<pre>    }</pre>
<pre>    public String echoString1(String in) {</pre>
<pre>      return "echoString1 " + in;</pre>
<pre>    }</pre>
<pre>    public String echoString2(String in) {</pre>
<pre>      return "echoString2 " + in;</pre>
<pre>    }</pre>
<pre>  }</pre>
<pre></pre>
<pre><strong>services.xml</strong></pre>
<pre>  &lt;service name="echo"&gt;</pre>
<pre>    &lt;description&gt;Echo Service&lt;/description&gt;</pre>
<pre>    &lt;messageReceivers&gt;</pre>
<pre>      &lt;messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"</pre>
<pre>        class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/&gt;</pre>
<pre>      &lt;messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"</pre>
<pre>        class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/&gt;</pre>
<pre>    &lt;/messageReceivers&gt;</pre>
<pre>    &lt;parameter name="ServiceClass" locked="true"&gt;Echo&lt;/parameter&gt;</pre>
<pre>&lt;/service&gt;</pre>

<p></p>

<p><strong>Echo2 - Service implementation and services.xml</strong></p>

<p>This example shows a simple service which specifies that it should only be
exposed over the JMS transport, and that the custom connection factory named
"myTopcConnectionFactory" should be used to listen for requests at the JMS
destination named "dynamicTopics/something.TestTopic". The JMS URL to access
this service is:</p>

<p>jms:/dynamicTopics/something.TestTopic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:61616&amp;java.naming.security.principal=system&amp;java.naming.security.credentials=manager</p>
<pre><strong>Echo2.java</strong></pre>
<pre>  public class Echo2 {</pre>
<pre>    public String echoString(String in) {</pre>
<pre>      return in;</pre>
<pre>    }</pre>
<pre>  }</pre>
<pre></pre>
<pre><strong>services.xml</strong></pre>
<pre>  &lt;service name="echo"&gt;</pre>
<pre>    &lt;transports&gt;</pre>
<pre>      &lt;transport&gt;jms&lt;/transport&gt;</pre>
<pre>    &lt;/transports&gt;</pre>
<pre>    &lt;description&gt;Echo2 Service&lt;/description&gt;</pre>
<pre>    &lt;messageReceivers&gt;</pre>
<pre>      &lt;messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"</pre>
<pre>        class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/&gt;</pre>
<pre>      &lt;messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"</pre>
<pre>        class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/&gt;</pre>
<pre>    &lt;/messageReceivers&gt;</pre>
<pre>    &lt;parameter name="ServiceClass" locked="true"&gt;Echo2&lt;/parameter&gt;</pre>
<pre>    &lt;parameter name="transport.jms.ConnectionFactory" locked="true"&gt;myTopicConnectionFactory&lt;/parameter&gt;</pre>
<pre>    &lt;parameter name="transport.jms.Destination" locked="true"&gt;dynamicTopics/something.TestTopic&lt;/parameter&gt;</pre>
<pre>  &lt;/service&gt;</pre>
<pre> </pre>

<h2>Starting up the Axis2 JMS transport</h2>
<pre>The Axis2 standalone binary distribution ships with an Axis2 Server, which starts up all of the transports that are configured as per the axis2.xml. 
Hence configure the JMS transport in your axis2.xml, and use the axis2server.bat or the axis2server.sh to start the JMS transport.</pre>
</body>
</html>
