【问题标题】:Spring Integration with IBM MQ Series与 IBM MQ 系列的 Spring 集成
【发布时间】:2015-11-24 19:26:09
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    你可以像这样创建 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>
    

    【讨论】:

    • 直到创建 jmsConnectionFactory 和“receiverQueue”。它对我有用。接下来我的要求是,我正在使用 jmsConnectionFactory,如下所示,使用 spring 集成。
      。
      但我想在 java 7 DSL 中提及。
      关于这个。
    • 能否请您关闭此问题并打开另一个问题?因为我们的讨论将是离题的,对于在 stackoferflow 内部搜索没有用处。
    • @OleksandrLoushkin 您知道此设置需要哪些依赖项(jar)吗?
    猜你喜欢
    • 2020-04-02
    • 2011-01-30
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 2018-02-08
    • 2018-06-27
    相关资源
    最近更新 更多