ESB as a JMS Producer — Sending messages to JBossMQ using ESB

Dilsi Chandrasena
2 min readOct 15, 2017

--

Prerequisites
Download the WSO2 ESB 4.9.0 version
Download the JBoss-5.1.0 version

01. To configure the JMS transport with JBossMQ, copy the below client libraries to the <ESB_HOME>/repository/components/lib directory. <JBOSS_HOME>/lib/jboss­system.jar
<JBOSS_HOME>/client/jbossall­client.jar

But, within some packs of JBoss jbossall­client.jar which is in <JBOSS_HOME>/client directory can be empty. In that case, we need to find the related jars to our scenario from <JBOSS_HOME>/client directory and need to add those jars to <ESB_HOME>/repository/components/lib directory.

Note: Below is the list of jars which are added to <ESB_HOME>/repository/components/lib directory. But some of the jars didn’t need to try out this scenario.

02. Enable the JMS transport sender by adding the following sender configuration to the <ESB_HOME>/repository/conf/axis2/axis2.xml file.

<transportSender name=”jms” class=”org.apache.axis2.transport.jms.JMSSender”>
<parameter name=”myQueueConnectionFactory” locked=”false”>
<parameter name=”java.naming.factory.initial” locked=”false”>org.jnp.interfaces.NamingContextFactory</parameter>
<parameter name=”java.naming.provider.url” locked=”false”>jnp://localhost:1099</parameter>
<parameter name=”transport.jms.UserName” locked=”false”>testuser</parameter>
<parameter name=”transport.jms.Password” locked=”false”>testuser</parameter>
<parameter name=”transport.jms.ConnectionFactoryJNDIName” locked=”false”>ConnectionFactory</parameter>
<parameter name=”transport.jms.ConnectionFactoryType” locked=”false”>queue</parameter>
<parameter name=”transport.jms.Destination”>queue/TestQueue</parameter>
</parameter>
<parameter name=”default” locked=”false”>
<parameter name=”java.naming.factory.initial” locked=”false”>org.jnp.interfaces.NamingContextFactory</parameter>
<parameter name=”java.naming.provider.url” locked=”false”>jnp://localhost:1099</parameter>
<parameter name=”transport.jms.UserName” locked=”false”>testuser</parameter>
<parameter name=”transport.jms.Password” locked=”false”>testuser</parameter>
<parameter name=”transport.jms.ConnectionFactoryJNDIName” locked=”false”>ConnectionFactory</parameter>
<parameter name=”transport.jms.ConnectionFactoryType” locked=”false”>queue</parameter>
<parameter name=”transport.jms.Destination”>queue/TestQueue</parameter>
</parameter>
</transportSender>

03. Following is the sample proxy for sending messages for a JBossMQ queue.

<proxy xmlns=”http://ws.apache.org/ns/synapse"
name=”TestProxy”
transports=”http,https”
statistics=”disable”
trace=”disable”
startOnLoad=”true”>
<target>
<inSequence>
<property name=”OUT_ONLY” value=”true”/>
<property name=”FORCE_SC_ACCEPTED” value=”true” scope=”axis2"/>
<property name=”Content-Length” scope=”transport” action=”remove”/>
<property name=”MIME-Version” scope=”transport” action=”remove”/>
<property name=”Transfer-Encoding” scope=”transport” action=”remove”/>
<property name=”User-Agent” scope=”transport” action=”remove”/>
<property name=”Accept-Encoding” scope=”transport” action=”remove”/>
<property name=”messageType” value=”application/xml” scope=”axis2"/>
<property name=”Content-Type” scope=”transport” action=”remove”/>
<send>
<endpoint>
<address uri=”jms:/transport.jms.ConnectionFactory=myQueueConnectionFactory”/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<description/>
</proxy>

03. Send a HTTP request to ESB proxy service. Then the message will be sent to JMS (JBossMQ) queue.

04. Check the message count of JBossMQ after login to the JBossMQ Management Console.

--

--

Dilsi Chandrasena
Dilsi Chandrasena

No responses yet