2015-04-02 74 views
0

我試圖從獨立的Spring Boot應用程序連接到在JBoss 7.1.1中運行的HornetQ JMS服務器。我能到服務器和推送消息到隊列,這樣的配置:HornetQ XA未參與使用Spring Boot的bitronix事務

<bean name="hornetConnectionFactory" class="org.hornetq.jms.client.HornetQXAConnectionFactory"> 
    <constructor-arg name="ha" type="boolean" value="false" /> 
    <constructor-arg> 
     <bean class="org.hornetq.api.core.TransportConfiguration"> 
      <constructor-arg value="org.hornetq.core.remoting.impl.netty.NettyConnectorFactory" /> 
      <constructor-arg> 
       <map key-type="java.lang.String" value-type="java.lang.Object"> 
        <entry key="host" value="127.0.0.1" /> 
        <entry key="port" value="5445"></entry> 
       </map> 
      </constructor-arg> 
     </bean> 
    </constructor-arg> 
</bean> 

<bean id="defaultDestination" class="org.hornetq.jms.client.HornetQQueue"> 
    <constructor-arg index="0" 
     value="outgoingMessageQueue"/> 
</bean> 

<bean id="userCredsConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"> 
    <property name="targetConnectionFactory" ref="hornetConnectionFactory"/> 
    <property name="username" value="${jms.user}"/> 
    <property name="password" value="${jms.password}"/>  
</bean> 

<bean id="jmsConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory" primary="true"> 
    <constructor-arg ref="userCredsConnectionFactory" /> 
    <property name="sessionCacheSize" value="20"/> 
</bean> 

<bean name="jmsTemplate" class="org.springframework.jms.core.JmsTemplate" 
    p:connectionFactory-ref="jmsConnectionFactory" 
    p:defaultDestination-ref="defaultDestination" /> 

然而XA連接不,我已經通過春季啓動的bitronix支持啓用JTA事務參與。數據庫連接使用JTA。我如何獲得Spring Boot以獲取此JMS連接以作爲其事務管理器中的XA資源?

回答

0

現在就工作吧。這是比我想象的simplier - 我能得到春天啓動與此連接到JBoss的HornetQ的在application.properties:

spring.hornetq.mode=native 
spring.hornetq.host=127.0.0.1 
spring.hornetq.port=5445 

spring.jta.bitronix.connectionfactory.user=user 
spring.jta.bitronix.connectionfactory.password=password 

而且JmsTemplate的自動拾取的XA JmsConnection。在Boot下,所有早期的XML都不是必需的。