This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Working with JMS
Java Message Service (JMS) is a widely used API in Java-based Message Oriented Middleware(MOM) applications. The JMS transport allows you to send and receive messages to queues and topics of any JMS service that implements the JMS specification.
The JMS transport implementation comes from the WS-Commons Transports project, and it makes use of JNDI to connect to various JMS brokers. As a result, the Business Process profile can work with any JMS broker that offers JNDI support. All the relevant classes are packed into the axis2-transport-jms-<version>.jar
and the classes org.apache.axis2.transport.jms.JMSListener and org.apache.axis2.transport.jms.JMSSender act as the transport receiver and sender respectively.
This section describes how you can configure the JMS transport of the Business Process profile in WSO2 Enterprise Integrator (WSO2 EI) to communicate with a JMS broker.
Enabling the JMS transport
To enable the JMS transport
Edit the
<EI_HOME>/wso2/business-process/conf/axis2/axis2.xml
file and uncomment the JMS listener as follows based on the JMS broker you are using:<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener”> …. </transportReceiver>
Edit the
<EI_HOME>/wso2/business-process/conf/axis2/axis2.xml
file and uncomment the JMS sender as follows:<transportSender name=“jms" class="org.apache.axis2.transport.jms.JMSSender"/>
Configuring the JMS transport
The JMS transport implementation requires an active JMS server instance to be able to receive and send messages. We recommend using Apache ActiveMQ, but other implementations such as Apache Qpid and Tibco are also supported.
Configuration parameters for the JMS receiver and sender are XML fragments that represent JMS connection factories. Following is a typical JMS connection factory configuration:
<parameter name="myTopicConnectionFactory"> <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter> <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter> <parameter name="transport.jms.ConnectionFactoryType">topic</parameter> </parameter>
This is a bare minimal JMS connection factory configuration that consists of four connection factory parameters.
For detailed information on each JMS connection factory parameter, see JMS connection factory parameters.
For information on how to configure the Business Process profile JMS transport with the most common broker servers, see the following topics: