在Spring和JBoss EAP 6.2中使用远程JMS队列

在Spring和JBoss EAP 6.2中使用远程JMS队列,jboss,jboss7.x,hornetq,Jboss,Jboss7.x,Hornetq,在一个JBoss实例上运行的Spring应用程序是否可以连接到另一个JBoss实例上定义的JMS队列(如果可以,使用什么配置?)?我读了几页关于如何通过编程实现的文章,但是是否可以在Spring应用程序中注入队列,以便应用程序不知道队列的远程位置,并且不需要执行显式查找 理想情况下,让“客户端JBoss”将队列的JNDI名称解析为远程队列。一个可接受的选项是让客户端应用程序在配置中将队列定义为远程队列 软件:JBoss EAP 6.2,Spring 3.x是的,您可以使用远程NettyConne

在一个JBoss实例上运行的Spring应用程序是否可以连接到另一个JBoss实例上定义的JMS队列(如果可以,使用什么配置?)?我读了几页关于如何通过编程实现的文章,但是是否可以在Spring应用程序中注入队列,以便应用程序不知道队列的远程位置,并且不需要执行显式查找

理想情况下,让“客户端JBoss”将队列的JNDI名称解析为远程队列。一个可接受的选项是让客户端应用程序在
配置中将队列定义为远程队列


软件:JBoss EAP 6.2,Spring 3.x

是的,您可以使用远程NettyConnectionFactory

<bean name="liveTransportConfiguration" 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="port" value="5445"></entry>
                <entry key="host" value="ip of server"></entry>
            </map>
        </constructor-arg>
</bean>





<bean name="connectionFactory" class="com.kp.KPHornetQJMSConnectionFactory"
        destroy-method="close">
        <constructor-arg name="ha" type="boolean" value="false" />
        <constructor-arg>
            <array>
                <ref bean="liveTransportConfiguration"></ref>
            </array>
        </constructor-arg>

        <property name="clientFailureCheckPeriod" value="5000" />
        <property name="retryInterval" value="1000" />
        <property name="retryIntervalMultiplier" value="1.0" />
        <property name="reconnectAttempts" value="-1" />
        <property name="confirmationWindowSize" value="-1" />   
</bean>

<bean name="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory"></property>
</bean>


<bean name="kpListener" class="Your jms MessageListener">
        <property name="jmsTemplate" ref="jmsTemplate"></property>
</bean>

<jms:listener-container connection-factory="connectionFactory" concurrency="1">
        <jms:listener destination="myqueue" ref="kpListener" method="onMessage" />
</jms:listener-container>
public class KPHornetQJMSConnectionFactory extends HornetQJMSConnectionFactory {

    private static final long serialVersionUID = -712113311282964108L;

    public KPHornetQJMSConnectionFactory(final boolean ha,
            org.hornetq.api.core.TransportConfiguration transportConfiguration) {
        super(ha, transportConfiguration);
        super.setUseGlobalPools(false);
    }   

}