Spring与IBM MQ系列集成

Esw*_*oud 5 spring spring-integration

对于Spring集成,我是新手,所以围绕它有一些问题.我试图将Spring Integration与MQ Series集成,并且相信我的所有IBM MQ(Q连接工厂和队列)条目都应该进入我的applicationcontext.xml文件.我有用于ActiveMQ实现的applicationcontext文件,只是想知道App Contest文件中的IBM MQ特定条目究竟是什么样子.问题是 -

  1. 我是否需要在运行Spring应用程序的同一台机器上安装MQ系列.
    1. 我认为不是,那么ApplicationContext文件中QueueConnectionFactory和Destination属性的条目应该是什么.提供一些样本poc将帮助我很多.

提前致谢.

Ole*_*kin 3

你可以像这样创建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
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)