使用Java SDK 0.9.7通过代理服务器连接到Azure服务总线

时间:2016-12-01 08:26:08

标签: java azure proxy azureservicebus

有一个问题与另一个用户的问题有关,sjohnston' :

再次询问,因为答案不正确。

Can I set a proxy for Azure service bus connections in Java SDK 0.9.0?

我们能够在公共网络上连接到azure服务,但当我在办公室网络中时,我们应该通过代理服务器。这是连接失败的地方。

我的问题与sjohnston发布的完全相同(上面的链接),但我使用的是java sdk 0.9.7(而不是sjohnston使用的0.9.0)

请点击问题说明链接。

感谢。

修改

在您建议进行更改后,我收到了此错误:

连接到Azure Service Bus: log4j:WARN没有为logger找到appender(com.microsoft.windowsazure.services.servicebus.ServiceBusContract)。 log4j:WARN请正确初始化log4j系统。 log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig。 com.microsoft.windowsazure.exception.ServiceException:com.sun.jersey.api.client.ClientHandlerException:java.net.SocketException:无法连接到SOCKS代理:连接超时:连接       在com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusExceptionProcessor.listTopics(ServiceBusExceptionProcessor.java:366)       在com.microsoft.windowsazure.services.servicebus.Util.iterateTopics(Util.java:29)       在com.tc.tsp.cc.controllers.TestServiceBus.configureServiceBus(TestServiceBus.java:55)       在com.tc.tsp.cc.controllers.TestServiceBus.main(TestServiceBus.java:67) 引起:com.sun.jersey.api.client.ClientHandlerException:java.net.SocketException:无法连接到SOCKS代理:连接超时:连接       at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)       在com.microsoft.windowsazure.services.servicebus.implementation.AuthorizationFilter.handle(AuthorizationFilter.java:39)       在com.microsoft.windowsazure.core.pipeline.jersey.ClientFilterRequestAdapter.handle(ClientFilterRequestAdapter.java:35)       在com.sun.jersey.api.client.Client.handle(Client.java:652)       在com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)       在com.sun.jersey.api.client.WebResource.get(WebResource.java:193)       在com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusRestProxy.listTopics(ServiceBusRestProxy.java:475)       在com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusRestProxy.listTopics(ServiceBusRestProxy.java:600)       在com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusExceptionProcessor.listTopics(ServiceBusExceptionProcessor.java:362)       ......还有3个 引起:java.net.SocketException:无法连接到SOCKS代理:连接超时:连接       在java.net.SocksSocketImpl.connect(未知来源)       在java.net.Socket.connect(未知来源)       at sun.security.ssl.SSLSocketImpl.connect(未知来源)       在sun.net.NetworkClient.doConnect(未知来源)       at sun.net.www.http.HttpClient.openServer(Unknown Source)       at sun.net.www.http.HttpClient.openServer(Unknown Source)       在sun.net.www.protocol.https.HttpsClient。(未知来源)       在sun.net.www.protocol.https.HttpsClient.New(未知来源)       at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)       at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)       at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)       at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)       at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)       at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)       at java.net.HttpURLConnection.getResponseCode(Unknown Source)       at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)       at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253)       在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)       ......还有11个

1 个答案:

答案 0 :(得分:0)

假设您使用除AMQP之外的HTTP之类的协议,请尝试使用Java官方文档Java Networking and Proxies2.4) SOCKS部分来设置socks协议代理您的JVM通过代理服务器连接Azure Service Bus。

请在主功能正文的正面添加以下代码。

System.getProperties().put("proxySet", "true");
System.getProperties().put("socksProxyHost", "<proxy-ip>");
System.getProperties().put("socksProxyPort", "<proxy-port>");