【发布时间】:2014-07-01 17:28:57
【问题描述】:
SpringJMS 3.0.4 未使用用户名连接 MQ 7.5 连接
无法使用用户名从 Spring JMS 版本 3.0.4 连接 MQ 7.5 队列管理器。传递用户名以提供对队列的适当授权。我们正在使用 SpringJMS,它使用同一台机器上可用的 MQ 客户端库。 MQ 管理器/服务器在远程机器上
以下是我们正在使用的配置,但我们收到如下所示的错误消息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<!-- :: Messaging Infrastructure Beans :: -->
<bean id="transport" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean" p:staticField="com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP" />
<bean id="mqConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory" p:transportType-ref="transport"
p:queueManager="${tcs.messaging.queueManager.name}" p:hostName="${tcs.messaging.queueManager.host}" p:port="${tcs.messaging.queueManager.port}"
p:channel="${tcs.messaging.queueManager.channel}" />
<bean id="queueConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"
p:targetConnectionFactory-ref="mqConnectionFactory" p:sessionCacheSize="${tcs.messaging.connectionFactory.sessionCacheSize}"
p:exceptionListener-ref="providerMessageListener" />
<bean id="providerMessageListener" class="com.uhg.treasury.customerservice.management.transport.jms.ProviderExceptionListener" />
<!-- New Addition :: -->
<bean id="myConnectionFactory2" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory"> <ref bean ="mqConnectionFactory"/> </property>
<property name="username"> <value>"tbossmqd"</value> </property>
<property name="password"> <value>"password1"</value> </property>
</bean>
</beans>
错误信息如下
2014-06-27 11:25:42,503 [main] 调试 - DefaultMessageListenerContainer.establishSharedConnection(752) |无法建立共享 JMS 连接 - 让异步调用者尽快建立连接 com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为具有连接模式“客户端”和主机名“wmqlt0006.xxx.com(1960)”的 QueueManager“WMQT013”提供的安全认证无效。 请检查您所连接的 QueueManager 上提供的用户名和密码是否正确。 在 com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:521) 在 com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:221) 在 com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.java:426) 在 com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6902) 在 com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6277) 在 com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:285) 在 com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6233) 在 com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:120) 在 com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:203) 在 org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:342) 在 org.springframework.jms.connection.SingleConnectionFactory.initConnection(SingleConnectionFactory.java:288) 在 org.springframework.jms.connection.SingleConnectionFactory.createConnection(SingleConnectionFactory.java:225) 在 org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:403) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.establishSharedConnection(AbstractJmsListeningContainer.java:371) 在 org.springframework.jms.listener.DefaultMessageListenerContainer.establishSharedConnection(DefaultMessageListenerContainer.java:749) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.doStart(AbstractJmsListeningContainer.java:278) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.start(AbstractJmsListeningContainer.java:263) 在 org.springframework.jms.listener.DefaultMessageListenerContainer.start(DefaultMessageListenerContainer.java:555) 在 org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:166) 在 org.springframework.context.support.DefaultLifecycleProcessor.access$1(DefaultLifecycleProcessor.java:154) 在 org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:335) 在 org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:143) 在 org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:108) 在 org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:908) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:197) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:172) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:158) 在 com.uhg.treasury.customerservice.management.Server.(Server.java:61) 在 com.uhg.treasury.customerservice.management.Server.(Server.java:43) 原因:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ 调用失败,compcode '2' ('MQCC_FAILED') 原因 '2035' ('MQRC_NOT_AUTHORIZED')。 在 com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209) ... 29 更多 2014-06-27 11:25:42,512 [main] 调试 - AbstractJmsListeningContainer.resumePausedTasks(539) |恢复暂停任务:org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker@627a94a9 2014-06-27 11:25:42,512 [main] 调试 - AbstractJmsListeningContainer.resumePausedTasks(539) |恢复暂停任务:org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker@5db615c1
【问题讨论】:
标签: authentication mq spring-jms