2011-11-29 68 views
1

我想使用Websphere MQ(7)提供的資源適配器從JBoss AS服務器(5.1)連接到WSMQ隊列(在公司網絡外的服務器上運行) 。在JBoss中使用代理服務器配置Websphere MQConnectionFactory

我建立了一個連接工廠,並希望將其配置爲使用我們的代理服務器,這是連接到網絡外部的計算機所必需的。我們的代理服務器需要認證。

我找到了(MQConnectionFactory)屬性proxyHostNameproxyPort但沒有辦法添加驗證(用戶名/密碼)。

Java屬性http.proxyHost等沒有任何區別,這是有道理的,因爲JMS不使用http。

配置socksProxyHost,socksProxyPort,java.net.socks.usernamejava.net.socks.password屬性也沒有影響。

我在這裏不知所措,我如何使用需要驗證的代理服務器從JBoss AS連接到遠程WSMQ隊列?

回答

5

你需要在你初始化MQQueueConnectionFactory, 你有兩種方法來創建一個QueueConnection實例與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); 
+0

這是正確答案 – SashikaXP

0

包裹MQConnectionFactory,一個沒有讓你指定的userId和密碼。

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