Настройте Websphere MQConnectionFactory с прокси-сервером в JBoss - PullRequest
1 голос
/ 29 ноября 2011

Я хочу подключиться к очереди WSMQ (работающей на сервере за пределами сети моей компании) с сервера JBoss AS (5.1) с помощью адаптера ресурсов, поставляемого Websphere MQ (7).

Я настроил фабрику соединений и хочу настроить ее на использование нашего прокси-сервера, который необходим для подключения к машине вне сети. Наш прокси-сервер требует аутентификации.

Я нашел (MQConnectionFactory) свойства proxyHostName и proxyPort, но нет средств для добавления аутентификации (имя пользователя / пароль).

Свойства Java http.proxyHost и т. Д. Не имеют никакого значения, что имеет смысл, поскольку JMS не использует http.

Настройка свойств socksProxyHost, socksProxyPort, java.net.socks.username и java.net.socks.password также не оказывает влияния.

Я в недоумении, как я могу подключиться из JBoss AS к удаленной очереди WSMQ, используя прокси-сервер, требующий аутентификации?

Ответы [ 2 ]

7 голосов
/ 04 июня 2014

Вам нужно обернуть MQConnectionFactory с помощью org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter

    MQConnectionFactory connectionFactory = new MQConnectionFactory();
    connectionFactory.setTransportType(1);
    connectionFactory.setHostName("localhost");
    connectionFactory.setPort(1415);
    connectionFactory.setQueueManager("DEV.QMGR");

    UserCredentialsConnectionFactoryAdapter connectionFactoryAdapter=new UserCredentialsConnectionFactoryAdapter();
    connectionFactoryAdapter.setTargetConnectionFactory(connectionFactory);
    connectionFactoryAdapter.setUsername("myusername");
    connectionFactoryAdapter.setPassword("mypassword");

    JmsComponent jmsComponent = new JmsComponent();
    jmsComponent.setConnectionFactory(connectionFactoryAdapter);
1 голос
/ 09 декабря 2014

Когда вы создаете экземпляр MQQueueConnectionFactory, у вас есть два метода для создания экземпляра QueueConnection, один из которых позволяет вам указать userId и пароль.

String userId = "test";
String password = "password";
mqQueueConnectionFactory = new com.ibm.mq.jms.MQQueueConnectionFactory();
QueueConnection queueConnection =
mqQueueConnectionFactory.createQueueConnection(userId,password);
...