LibraryToggle FramesPrintFeedback

To configure the JMS transaction manager and the JMS resource, perform the following steps:

  1. Customize the Spring XML configuration. Using your favorite text editor, open the tx-jms-router/src/main/resources/META-INF/spring/camel-context.xml file and add the following content to the beans element:

    <beans ... >
      ...
      <bean id="jmstx" class="org.apache.camel.component.jms.JmsComponent"> 
        <property name="configuration" ref="jmsConfig" /> 
      </bean> 
    
      <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"> 
          <property name="connectionFactory" ref="jmsConnectionFactory"/> 
          <property name="transactionManager" ref="jmsTransactionManager"/> 
          <property name="transacted" value="true"/> 
      </bean> 
    
      <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
        <property name="connectionFactory" ref="jmsConnectionFactory" />
      </bean>
      
      <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="vm://broker1?brokerConfig=xbean:tutorial/activemq.xml"/>
      </bean>
    
    </beans>

    This configuration creates a custom JMS component, with bean ID equal to jmstx, that you can use to define transactional JMS endpoints in your routes. The underlying JMS system is an embedded Fuse Message Broker (Apache ActiveMQ) broker, which takes its configuration from the file, tutorial/activemq.xml.

  2. Create the ActiveMQ configuration file, activemq.xml. First create the new directory, tx-jms-router/src/main/resources/tutorial. Next, using your favorite text editor, create the file, activemq.xml, under the tutorial directory, and add the following text:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans>
      <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
    
      <broker useJmx="true"  xmlns="http://activemq.org/config/1.0" persistent="false" brokerName="broker1">
        <transportConnectors>
          <transportConnector name="openwire" uri="tcp://localhost:61616"/>
        </transportConnectors>
      </broker>
      
    </beans>
Comments powered by Disqus