Before we can learn about accessing other services on the JBI ESB, we have to add a JMS SU with two endpoints to interact with.
Adding a JMS SU
Creating the JMS SU
You can create the JMS SU by using the Maven archetype for it in your project's root:
Adding the JMS SU to our SA
To do this, just add the SU as a dependency to your SA's pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project>
...
<dependencies>
...
<dependency>
<groupId>org.apache.servicemix.tutorial.camel</groupId>
<artifactId>tutorial-camel-jms-su</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
...
</project>
| If you are using Eclipse
If you are using Eclipse for taking this tutorial, you should take a minute at this point to re-run mvn eclipse:eclipse, import the additional SU project into the workspace and refresh the SA project to get back in sync with your Maven project. |
Configuring the JMS SU
Now, modify the JMS SU's xbean.xml to configure a sample consumer and provider endpoint, both referring to the same queue like this:
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:tutorial="urn:org:apache:servicemix:tutorial:camel"
xmlns:amq="http://activemq.org/config/1.0">
<jms:provider service="tutorial:jms"
endpoint="provider"
destinationName="tutorial.camel.queue"
connectionFactory="#connectionFactory" />
<jms:consumer service="tutorial:jms"
endpoint="consumer"
destinationName="tutorial.camel.queue"
connectionFactory="#connectionFactory"
targetService="tutorial:jms"
targetEndpoint="consumer" />
<amq:connectionFactory id="connectionFactory" brokerURL="tcp://localhost:61616" />
</beans>
Build and deploy the SA
Just to make sure you haven't made any mistakes here, quickly build and deploy the SA again now. Feel free to connect to ServiceMix using a JMX console to convince yourself that the new endpoints are actually available. Leave the JMX console running for now, you'll be needing it in our next step as well.
Now that we are done with preparations, it's time to get back to Camel and do something with our all new endpoints now.