我需要通过 HTTP/HTTPS 代理将 ActiveMQ 监听器连接到防火墙外的代理。我到处搜索但没有找到如何为 AcitveMQ-Client 设置代理设置的解决方案。
ActiveMQ 使用的是 Apache HttpClient,但我不知道如何在 ActiveMQ 中操作此客户端的创建。 HttpClient 不使用 htttps.proxyHost 和 https.proxyPort。
有没有办法为 HttpClient 的所有实例设置全局 http/https 代理?
最佳答案
ActiveMQ HttpClientTransport包含以下可用于指定代理主机和端口的方法:
public void setProxyHost(String proxyHost)
public void setProxyPort(int proxyPort)
对于 5.6+ 版本,您还可以提供代理用户名和密码:
public void setProxyUser(String proxyUser)
public void setProxyPassword(String proxyPassword)
配置 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>
关于java - activemq http 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395664/