Spring 与 IBM MQ 系列集成

Spring Integration with IBM MQ Series

我是 Spring 集成方面的新手,因此对此有一些疑问。 我正在尝试将 Spring 与 MQ 系列集成,并相信我所有的 IBM MQ(Q 连接工厂和队列)条目都应该放在我的 applicationcontext.xml 文件中。 我有 ActiveMQ 实施的应用程序上下文文件,只是想知道 App Contest 文件中特定于 IBM MQ 的条目到底是什么样子。问题是 -

  1. 我是否需要在我安装的同一台机器上安装 MQ 系列 我是 运行 我的 Spring 申请。
    1. 我想不是,那么 QueueConnectionFactory 和 Destination 属性的条目应该是什么 在 ApplicationContext 文件中。 提供一些样本 poc 会对我有很大帮助。

提前致谢。

您可以像这样创建 bean

jms.transportType=1
jms.queueManager=YOUR_QUEUE_MANAGER
jms.hostName=YOUR_HOSTNAME
jms.port=1321

jms.channel=YOUR_CHANNEL
jms.receiver.queue.name=YOUR_QUEUE
jms.username=
jms.alias=
jms.mq.connection.factory=jmsConnectionFactory
jms.mq.receiver.queue=receiverQueue
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="transportType" value="${jms.transportType}"/>
    <property name="queueManager" value="${jms.queueManager}"/>
    <property name="hostName" value="${jms.hostName}"/>
    <property name="port" value="${jms.port}" />
    <property name="channel" value="${jms.channel}"/>
</bean>
<bean id="secureJmsConnectionAdapter" class="yourpackages.SecureJMSConnectionAdapter">
    <property name="targetConnectionFactory" ref="${jms.mq.connection.factory}" />
    <property name="userName" value="${jms.username}"/>
    <property name="pwdAlias" value="${jms.alias}"/>
</bean>

<bean id="receiverQueue" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>

<bean id="receiverJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="secureJmsConnectionAdapter" />
    <property name="pubSubDomain" value="false"/>
    <property name="defaultDestination" ref="${jms.mq.receiver.queue}"/>
    <property name="receiveTimeout" value="30000"/>
</bean>


<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
    <property name="connectionFactory" ref="secureJmsConnectionAdapter" />
    <property name="destinationName" value="${jms.receiver.queue.name}" />
    <property name="messageListener" ref="mQListener" />
</bean>