Consuming and Producing JMS Messages¶
This section describes how to configure ESB Micro Integrator to work as a JMS-to-JMS proxy service. In this example, the Micro Integrator listens to a JMS queue, consumes messages, and then sends those messages to another JMS queue.
Synapse configuration¶
Given below is the synapse configuration of the proxy service that mediates the above use case. Note that you need to update the JMS connection URL according to your broker as explained below. See the instructions on how to build and run this example.
<proxy name="StockQuoteProxy" transports="jms">
<target>
<inSequence>
<property action="set" name="OUT_ONLY" value="true"/>
<send>
<endpoint>
<address uri=""/> <!-- Specify the JMS connection URL here -->
</endpoint>
</send>
</inSequence>
</target>
</proxy>
The Synapse artifacts used are explained below.
Artifact Type | Description |
---|---|
Proxy Service | A proxy service is used to receive messages and to define the message flow. In the sample configuration above, the 'transports' property is set to 'jms', which allows the ESB to receive JMS messages. This proxy StockQuoteProxy and sends messages to another queue named SimpleStockQuoteService. |
Property Mediator | The OUT ONLY property is set to true , which indicates that the message exchange is one-way. |
Send Mediator |
To send a message to a JMS queue, you should define the JMS connection URL as the endpoint address (which should be invoked via the **Send** mediator). There are two ways to specify the endpoint URL:
|
Info
To refer details on JMS transport parameters, you can follow JMS transport parameters used in the Micro Integrator.
Note
Be sure to replace the ' &
' character in the endpoint URL with '&
' to avoid the following exception:
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '=' (code 61); expected a semi-colon after the reference for entity 'java.naming.factory.initial' at [row,col {unknown-source}
Build and run¶
Create the artifacts:
- Set up ESB Integration Studio.
- Create an integration project with an ESB Configs module and an Composite Exporter.
- Create the proxy service with the configurations given above.
- Deploy the artifacts in your Micro Integrator.
Set up the broker:
- Configure a broker with your Micro Integrator instance. Let's use Active MQ for this example.
- Start the broker.
- Start the Micro Integrator (after starting the broker).
Set up the back-end service:
- Download the back-end service.
- Extract the downloaded zip file.
- Open a terminal, navigate to the
axis2Server/bin/
directory inside the extracted folder. -
Execute the following command to start the axis2server with the SimpleStockQuote back-end service:
sh axis2server.sh
axis2server.bat
You now have a running ESB Micro Integrator instance, ActiveMQ instance, and a sample back-end service to simulate the sample scenario.
Add a message in the StockQuoteProxy
queue using the ActiveMQ Web Console.