Сообщество Hi StackOverflow,Невозможно подключиться к Websphere MQ с использованием JNDI
В настоящее время я использую Spring для подключения к очереди. Я хотел бы иметь возможность настроить, с каким провайдером я могу подключиться в нашем тесте VS наших UAT-средах. В UAT мы используем IBM WMQ 7; В тесте мы используем ActiveMQ.
Мы также используем SSL-соединение в обоих случаях.
В настоящее время мы имеем следующую конфигурацию, которая работает для подключения к WMQ 7:
<bean id="jmsFactory" name="jmsFactory" class="com.ibm.mq.jms.MQConnectionFactory">
<property name="queueManager" value="${UM_MQ_QM}" />
<property name="hostName" value="${UM_MQ_HOST}" />
<property name="channel" value="${UM_MQ_CHANNEL}" />
<property name="port" value="${UM_MQ_PORT}" />
<property name="transportType" value="1" />
<property name="SSLCipherSuite" value="${SSL_CIPHER_SUITE}" />
</bean>
Используя JNDI, я могу подключиться к ActiveMQ. Но при переключении класса провайдера это дает мне следующее исключение.
Spring JNDI Config:
<bean id="jmsFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="QueueConnectionFactory" />
<property name="jndiTemplate" ref="jndiTemplate" />
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">com.ibm.mq.jms.context.WMQInitialContextFactory</prop>
<prop key="java.naming.provider.url">${UM_MQ_HOST}:${UM_MQ_PORT}/${UM_MQ_CHANNEL}</prop>
</props>
</property>
</bean>
Исключение:
Caused by: javax.naming.NamingException: Caught an Exception trying to create the admin queue. Exception was: com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'. [Root exception is com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'.]
at com.ibm.mq.jms.context.MQContext.<init>(MQContext.java:294)
at com.ibm.mq.jms.context.WMQInitialContextFactory.getInitialContext(WMQInitialContextFactory.java:29)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at org.springframework.jndi.JndiTemplate.createInitialContext(JndiTemplate.java:136)
at org.springframework.jndi.JndiTemplate.getContext(JndiTemplate.java:103)
at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:85)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201)
at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
... 109 more
Caused by: com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'.
at com.ibm.mq.pcf.PCFMessageAgent.send(PCFMessageAgent.java:241)
at com.ibm.mq.jms.context.MQContext.<init>(MQContext.java:273)
... 125 more
Я подозреваю, что это связано либо 2 вещи:
- У нас нет явных разрешений, установленных на Очередь JMS Admin, указанная выше
- Настройка шифрования не работает в Конфигурация пружины
Может ли кто-нибудь дать некоторые рекомендации? Если вы столкнулись с этой проблемой раньше, каково было решение?
Я уверен, что ответ смотрит на меня прямо в лицо, просто какой-то туман в моих глазах :)
Спасибо,
Jose
Я считаю, что вы уже посмотрели на это http://stackoverflow.com/questions/12889953/unable-to-connect-to-queue-manager-in-websphere-mq-7-1 – Ashish