Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring集成,WMQ的jms入站网关;无法使用邮件_Jms_Spring Integration_Ibm Mq - Fatal编程技术网

Spring集成,WMQ的jms入站网关;无法使用邮件

Spring集成,WMQ的jms入站网关;无法使用邮件,jms,spring-integration,ibm-mq,Jms,Spring Integration,Ibm Mq,我最近开始探索Spring集成,因为这是我们希望为项目评估的选项之一 我面临的问题如下 我已经创建了一个JMS入站网关来侦听WMQ队列,我希望inboudnd网关(使用DML)能够在队列上可用时(事件驱动)拾取消息 但有些人认为这个例子不起作用。它无法从队列中拾取消息。但是,我可以看到(使用工具)在队列上创建了使用者。 这里的帮助真的很感激 下面是代码片段 <bean id="mqFactory" class="com.ibm.mq.jms.MQConnectionFactory">

我最近开始探索Spring集成,因为这是我们希望为项目评估的选项之一

我面临的问题如下

我已经创建了一个JMS入站网关来侦听WMQ队列,我希望inboudnd网关(使用DML)能够在队列上可用时(事件驱动)拾取消息

但有些人认为这个例子不起作用。它无法从队列中拾取消息。但是,我可以看到(使用工具)在队列上创建了使用者。 这里的帮助真的很感激

下面是代码片段

<bean id="mqFactory" class="com.ibm.mq.jms.MQConnectionFactory">
        <property name="hostName" value="${mq.hostName}"/>
        <property name="port" value="${mq.port}"/>
        <property name="queueManager" value="${mq.queueManager}"/>
        <property name="channel" value="${mq.channel}"/>
        <property name="transportType" value="${mq.transportType}"/>
        <property name="SSLCipherSuite" value="${mq.SSLCipherSuite}"/>
    </bean>

    <bean id="inCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="targetConnectionFactory" ref="mqFactory" />
        <property name="sessionCacheSize" value="5" />
    </bean>

    <bean id="requestQueue-mq" class="com.ibm.mq.jms.MQQueue">
        <constructor-arg value="${mq.example.queue}"/>
    </bean>
    <bean id="demoBean" class="com.jpmchase.example.spring.DemoBean">
</bean>
   <jms:inbound-gateway id="wMQ_in_gateway" concurrent-consumers="2" max-concurrent-consumers="5" connection-factory="inCachingConnectionFactory" request-destination="requestQueue-mq"
    request-channel="demoChannel"  />
<integration:channel id="demoChannel">
     </integration:channel>
<integration:service-activator input-channel="demoChannel" ref="demoBean"/>
公共类DemoBean{

@ServiceActivator
public String upperCase(String input) {
    System.out.println("inside the service activator " + input);
    return "JMS response: " + input.toUpperCase();
}

这里

发生了什么?有日志吗?您是否尝试过将
MQConnectionFactory
直接包装到
CachingConnectionFactory
?当
org.springframework.integration
org.springframework.jms
打开
DEBUG
时,请共享日志错误。目标“”的JMS消息侦听器调用程序设置失败queue:///PHxx.xTx.TO.Pxxx.DEV.VENUS“-正在尝试恢复。原因:javax/transaction/transaction Manager java.lang.NoClassDefFoundError:javax/transaction/transaction Manager位于com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.(MQMessageConsumer.java:497)在com.ibm.msg.client.wmq.v6.jms.internal.MQSession.createQConsumer(MQSession.java:3082)的com.ibm.msdid中,您包括jta.jar?@Artem,我确实将MqConnectionFactory作为参数指定给了CacheconnectionFactory。然而,我注意到……队列上的使用者数量在不断增加。但没有一个使用者使用来自queuq的消息。
@ServiceActivator
public String upperCase(String input) {
    System.out.println("inside the service activator " + input);
    return "JMS response: " + input.toUpperCase();
}