ActiveMQ Camel TomcatPage edited by Claus IbsenChanges (10)
Full ContentEmbedded ActiveMQ Broker with Camel running in Apache Tomcat exampleAvailable as of Camel 2.11 This example shows how you can embed Apache ActiveMQ Broker and Camel in a web application, which can run on Apache Tomcat or other web containers. This example embeds ActiveMQ Broker and a Camel application which will continuously send a message per second to an inbox queue. Building and Running exampleYou will need to build this example first: mvn install Which will create a .war file in the target directly. You can then deploy this .war file in any web container such as Apache Tomcat, by copying the .war file to its /webapp directory.
The broker.xml file is located in the src/main/resources directory and contains: <!-- this is a spring XML file where we have ActiveMQ Broker embedded --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:broker="http://activemq.apache.org/schema/core" xsi:schemaLocation=" http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- create an ActiveMQ broker --> <!-- do not use the shutdown hook as it would cause the broker to shutdown when you press ctrl + c, instead we will let Spring shutdown the broker --> <!-- notice this is a basic AMQ broker configuration, for production usage there is many more options you may need to configure accordingly to your needs --> <broker id="broker" brokerName="myBroker" useShutdownHook="false" useJmx="true" persistent="true" dataDirectory="activemq-data" xmlns="http://activemq.apache.org/schema/core"> <transportConnectors> <!-- vm transport for intra-jvm communication --> <transportConnector name="vm" uri="vm://myBroker"/> <!-- tcp for external communication --> <transportConnector name="tcp" uri="tcp://0.0.0.0:61616"/> </transportConnectors> </broker> </beans> The camel-config.xml file is located in the src/main/resources directory and contains: <!-- this is a spring XML file where we have Camel embedded --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <!-- Here we define Camel, notice the namespace it uses --> <camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- Camel route to feed the ActiveMQ inbox queue once per second --> <route> <from uri="timer:foo?period=1s"/> <transform> <simple>Message at ${date:now:yyyy-MM-dd HH:mm:ss}</simple> </transform> <to uri="activemq:queue:inbox"/> </route> <!-- Camel route to move messages from the ActiveMQ inbox to its outbox queue --> <route> <from uri="activemq:queue:inbox"/> <log message="Routing message from inbox to outbox queue with data ${body}"/> <to uri="activemq:queue:outbox"/> </route> </camelContext> <!-- create a Camel ActiveMQ component to use, using the Spring bean style --> <!-- we use the vm protocol to communicate intra-jvm which is much faster than tcp --> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <!-- vm://myBroker is the vm protocol, and myBroker is the broker name --> <property name="brokerURL" value="vm://myBroker?create=false&waitForStart=5000"/> </bean> </beans> JMXYou can use JConsole to get details about the running ActiveMQ. This is done by starting up jconsole, and in the remote services input box, type in
service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
See Also
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > ActiveMQ Camel Tomcat confluence
- [CONF] Apache Camel > ActiveMQ Camel Tomcat confluence
