有一个问题与另一个用户的问题有关,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个
答案 0 :(得分:0)
假设您使用除AMQP
之外的HTTP
之类的协议,请尝试使用Java官方文档Java Networking and Proxies
的2.4) SOCKS
部分来设置socks协议代理您的JVM通过代理服务器连接Azure Service Bus。
请在主功能正文的正面添加以下代码。
System.getProperties().put("proxySet", "true");
System.getProperties().put("socksProxyHost", "<proxy-ip>");
System.getProperties().put("socksProxyPort", "<proxy-port>");