Apache Camel 中的 IBM MQ ISSUE 因为 Spring JMS Listener

IBM MQ ISSUE in Apache Camel because Spring JMS Listener

我是 IBM MQ with Apache camel 的新手。下面是我的配置

<from IBM MQ>
<parallel>
 <to ACTIVE MQ>
 <to IBM MQ>
</parallel>

我的应用程序是 运行 在 Spring 容器中。有时我收到以下警告,因此我的路线不起作用(IBM MQ 未读取消息)。为了获得警告,Route is not working 。

异常

org.springframework.jms.listener.DefaultMessageListenerContainer handleListenerSetupFailure WARNING: Setup of JMS message listener invoker failed for destination 'temporary' - trying to recover. Cause: User XXXXXX is not authorized to create: temp-queue://ID:IP Address-1:26:1 Feb 20, 2015 2:59:07 AM org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful INFO: Successfully refreshed JMS Connection Feb 20, 2015 2:59:08 AM org.springframework.jms.listener.DefaultMessageListenerContainer handleListenerSetupFailure WARNING: Setup of JMS message listener invoker failed for destination 'temporary' - trying to recover. Cause: JMSWMQ2008: Failed to open MQ queue 'SYSTEM.DEFAULT.MODEL.QUEUE'.; nested exception is com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').**

我正在使用 Active 和 IBM MQ,为什么 Spring JMS Listener 发出警告?

您应该确保没有将请求-回复指定为 exchange pattern

我会明确声明消息应该是 "InOnly"。

 <inOnly uri="ACTIVEMQ..."/>
 <inOnly uri="IBM MQ..."/>

如果您打算执行 request/reply,那么您需要确保您的 WebSphere MQ 用户有权访问 SYSTEM.DEFAULT.MODEL.QUEUE。

像这样的东西应该允许权限:

setmqaut -m QMGR -t q -n SYSTEM.DEFAULT.MODEL.QUEUE -g mygroup +dsp +inq +get