Using the ESB as JMS Consumer and Producer
This section describes how to configure the ESB Profile of WSO2 Enterprise Integrator (WSO2 EI) to work as a JMS-to-JMS proxy service.
Follow the steps below to configure the ESB Profile of WSO2 EI to listen to a JMS queue and consume messages, and then send those messages to another JMS queue.
- Configure the ESB Profile of WSO2 EI with Apache ActiveMQ and set up the JMS listener and sender. For instructions, see Configure with ActiveMQ.
Create a proxy service with the following configuration. To create a proxy service using Tooling, see Working with Proxy Services via Tooling.
<proxy name="StockQuoteProxy" transports="jms"> <target> <inSequence> <property action="set" name="OUT_ONLY" value="true"/> <send> <endpoint> <address uri="jms:/SimpleStockQuoteService?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory& java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616"/> </endpoint> </send> </inSequence> </target> </proxy>
When entering the above URLs in the management console, replace '
&
' character in the endpoint URL with '&
'In the sample configuration above, the ESB Profile of WSO2 EI listens to a JMS queue named
StockQuoteProxy
and sends messages to another queue namedSimpleStockQuoteService.
- To place a message into a JMS queue, execute following command from theÂ
<EI_HOME>/samples/axis2Client
directory.
ant stockquote -Dmode=placeorder -Dtrpurl="jms:/StockQuoteProxy?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&transport.jms.ContentTypeProperty=Content-Type&transport.jms.DestinationType=queue"
You can view the ActiveMQ queues by accessing the ActiveMQ management console using the URLÂ http://0.0.0.0:8161/admin
and using admin
 as both the username and password.
Generally, JMS is used for one-way, asynchronous message exchange. However you can perform synchronous messaging also with JMS. For more information, see JMS Synchronous Invocations : Dual Channel HTTP-to-JMS and JMS Synchronous Invocations : Quad Channel JMS-to-JMS.