2013-01-18 9 views
7

Ich muss einen ActiveMQ-Listener mit einem Broker außerhalb der Firewall über einen HTTP/HTTPS-Proxy verbinden. Ich habe überall gesucht, aber keine Lösung gefunden, wie man die Proxy-Einstellungen für den AcitveMQ-Client einstellt.activemq http Proxy

ActiveMQ verwendet Apache HttpClient, aber ich kann die Erstellung dieses Clients in ActiveMQ nicht ändern. Die Verwendung von htttps.proxyHost und https.proxyPort wird vom HttpClient nicht verwendet.

Gibt es eine Möglichkeit, einen globalen http/https-Proxy für alle Instanzen von HttpClient festzulegen?

Antwort

5

Die ActiveMQ HttpClientTransport enthält die folgenden Methoden können Sie den Proxy-Host und Port angeben können:

public void setProxyHost(String proxyHost) 
public void setProxyPort(int proxyPort) 

Für Version 5.6+ Sie auch den Proxy-Benutzernamen und Passwort zur Verfügung stellen kann:

public void setProxyUser(String proxyUser) 
public void setProxyPassword(String proxyPassword) 

Zum Konfigurieren eines JmsInvokerProxyFactoryBean:

<bean id="jmsClientFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> 
    <property name="brokerURL"> 
     <value>http://myendpoint.somewhere.com:5186?proxyUser=fred&amp;proxyPassword=ahoy&amp;proxyHost=myproxyhost.somewhere.com&amp;proxyPort=8081</value> 
    </property> 
</bean> 


<bean id="remotingService" 
     class="org.springframework.jms.remoting.JmsInvokerProxyFactoryBean"> 
     <property name="serviceInterface" value="com.foo.CheckingAccountService"/> 
     <property name="connectionFactory" ref="jmsClientFactory"/> 
     <property name="queue" ref="queue"/> 
    </bean> 
+0

Danke, aber wie bekomme ich die Instanz von meinem Httpclienttransport den Proxy einzustellen. Ich benutze Springs JmsInvokerProxyFactoryBean und ich weiß nicht, wo der Httpclienttransport erstellt wird und wie auf die Instanz innerhalb Activemq zugreifen? – buddha089

+0

Zuletzt geändert – Nicholas

+0

Hi Ich verwende ActiveMQConnectionFactory, um eine Verbindung mit JmsTemplate zu erstellen. Ich muss mich mit activeMq verbinden, die hinter dem Proxy-Server ist. Können Sie mir bitte mitteilen, wie Sie die Proxy-Details auf activemqConection einstellen. Wir verwenden tcp trasport connection, um mit activemq zu kommunizieren. Danke für die Hilfe im Voraus. –