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