WebMQ с SSL в Mulesoft

Я новичок в Mulesoft Anypoint Studio и только начал его изучать. Мой поток начинается с чтения сообщений из MQ и заканчивается их помещением в место назначения, чтобы начать только с моей локальной машины и развиваться позже. Я столкнулся с проблемой, когда в очереди есть TSL, который включает хранилища ключей и доверенные хранилища. Теперь в Anypoint я вижу коннекторы WMQ и HTTPS / TSL. Я установил контекст TSL как глобальный элемент, но как мне установить его как часть коннектора WMQ? К той же очереди и / или каналу можно получить доступ для кода Java с правильными настройками TLS (хранилища ключей, доверенные хранилища и т. Д.), Но в студии я в настоящее время получаю это исключение:

Корневое исключение было: MQJE001: возникло исключение MQException: код завершения 2, причина 2009 MQJE016: диспетчер очередей MQ закрыл канал сразу во время подключения Причина закрытия = 2009. Тип: class com.ibm.mqservices.MQInternalException

Я не встречал образцов кода для WMQ с TLS при поиске в Google. Приветствуются любые подсказки / идеи.

Заранее спасибо!


person user123    schedule 22.12.2017    source источник


Ответы (1)


  1. Создайте bean-компонент MQQueueConnectionFactory, как показано ниже.
<spring:bean id="MQConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
           <spring:property name="hostName" value="${hostName}"/>
           <spring:property name="port" value="${port}"/>
           <spring:property name="channel" value="${channel}"/>
           <spring:property name="queueManager" value="${queueManager}"/>
           <spring:property name="SSLCipherSuite" value="${SSLCipherSuite}"/>
           <spring:property name="targetClientMatching" value="true" />
           <spring:property name="transportType" value="1" />
        </spring:bean>
  1. Создайте bean-компонент UserCredentialsConnectionFactoryAdapter и передайте созданный bean-компонент выше в качестве ссылки на него.
<spring:bean id="jmsQueueConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
        <spring:property name="targetConnectionFactory" ref="MQConnectionFactory" />
        <spring:property name="username" value="${username}" />
        <spring:property name="password" value="${password}" />
    </spring:bean>
  1. Создайте коннектор WMQ и передайте соответствующие ссылки и значения
<wmq:connector name="WMQConnector" 
              hostName="${hostName}" 
              port="${port}" 
              queueManager="${queueManager}" 
              channel="${channel}" 
              transportType="CLIENT_MQ_TCPIP" 
              validateConnections="true"  
              doc:name="WMQ" 
              password="${password}" 
              username="${username}"  
              dynamicNotification="true" 
              numberOfConsumers="1" 
              connectionFactory-ref="MQConnectionFactory" 
              cacheJmsSessions="false"  
              specification="1.1" 
              targetClient="JMS_COMPLIANT" 
              acknowledgementMode="CLIENT_ACKNOWLEDGE" 
              maxRedelivery="-1">

  1. Задайте расположения и пароли хранилищ ключей и доверенных лиц в аргументах виртуальной машины, как показано ниже.
-Djavax.net.ssl.trustStore=keystore.jks -Djavax.net.ssl.trustStorePassword=xxxx -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=xxxx

That's it. This should solve WMQ with SSL integration in Mule.

person user123    schedule 11.01.2018