I need to connect a ActiveMQ-Listener to a broker outside the firewall through an HTTP/HTTPS-Proxy. I've searched everywhere but haven't found a solution how to set the proxy settings for the AcitveMQ-Client.
ActiveMQ is using Apache HttpClient but I don't know how to manipulate the creation of this client within ActiveMQ. The use of htttps.proxyHost and https.proxyPort is not used by the HttpClient.
Is there a way to set a global http/https proxy for all instances of HttpClient ?
The ActiveMQ HttpClientTransport contains the following methods you can use to specify the proxy host and port:
public void setProxyHost(String proxyHost)
public void setProxyPort(int proxyPort)
For version 5.6+ you can also provide the proxy username and password:
public void setProxyUser(String proxyUser)
public void setProxyPassword(String proxyPassword)
To configure a JmsInvokerProxyFactoryBean:
<bean id="jmsClientFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>http://myendpoint.somewhere.com:5186?proxyUser=fred&proxyPassword=ahoy&proxyHost=myproxyhost.somewhere.com&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>