通过具有身份验证的代理连接后的 SocketTimeoutException
SocketTimeoutException after connecting via proxy with authentication
我编写了与非 public 网络服务通信的代码,即使通过代理连接,一切似乎都能正常工作。更改为授权代理后问题开始。我收到以下警告:
WARN [HttpMethodDirector] Required credentials not available for BASIC <any realm>@destination.url.com:80
WARN [HttpMethodDirector] Preemptive authentication requested but no default credentials available
之后抛出异常:java.net.SocketTimeoutException:读取超时
"destination.url.com"是目标地址,所以我猜我是通过代理的。
我在 Whosebug 的某处读到,当不需要传递 username/password 时,通常会抛出此警告。我不知道这是不是真的。
这里有些人也指出了同样的问题,但 运行 可以通过未经身份验证的代理重现到经过身份验证的远程存储库。我的情况正好相反。目的地不需要授权(授权数据放在 SOAP 消息的主体中)。
https://www.jfrog.com/jira/browse/RTFACT-4147
任何想法如何帮助我的情况?这是我的一些代码:
MyStub stub = new MyStub();
Options Options = stub._getServiceClient().getOptions();
Options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING,"utf-8");
Options.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_SWA,org.apache.axis2.Constants.VALUE_FALSE);
HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties();
proxyProperties.setProxyName("proxyAddress");
proxyProperties.setProxyPort("proxyPort");
proxyProperties.setUserName("proxyUsername");
proxyProperties.setPassWord("proxyPassword");
Options.setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY,proxyProperties);
- 碰巧警告与异常无关。抛出异常是因为 web 服务不支持分块消息。只需添加这个即可解决问题:
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
- 警告本身很奇怪,但有一种方法可以将其删除,只需添加任何登录名和密码即可。目的地不需要任何,但警告消失。
我编写了与非 public 网络服务通信的代码,即使通过代理连接,一切似乎都能正常工作。更改为授权代理后问题开始。我收到以下警告:
WARN [HttpMethodDirector] Required credentials not available for BASIC <any realm>@destination.url.com:80
WARN [HttpMethodDirector] Preemptive authentication requested but no default credentials available
之后抛出异常:java.net.SocketTimeoutException:读取超时
"destination.url.com"是目标地址,所以我猜我是通过代理的。
我在 Whosebug 的某处读到,当不需要传递 username/password 时,通常会抛出此警告。我不知道这是不是真的。
这里有些人也指出了同样的问题,但 运行 可以通过未经身份验证的代理重现到经过身份验证的远程存储库。我的情况正好相反。目的地不需要授权(授权数据放在 SOAP 消息的主体中)。 https://www.jfrog.com/jira/browse/RTFACT-4147
任何想法如何帮助我的情况?这是我的一些代码:
MyStub stub = new MyStub();
Options Options = stub._getServiceClient().getOptions();
Options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING,"utf-8");
Options.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_SWA,org.apache.axis2.Constants.VALUE_FALSE);
HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties();
proxyProperties.setProxyName("proxyAddress");
proxyProperties.setProxyPort("proxyPort");
proxyProperties.setUserName("proxyUsername");
proxyProperties.setPassWord("proxyPassword");
Options.setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY,proxyProperties);
- 碰巧警告与异常无关。抛出异常是因为 web 服务不支持分块消息。只需添加这个即可解决问题:
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
- 警告本身很奇怪,但有一种方法可以将其删除,只需添加任何登录名和密码即可。目的地不需要任何,但警告消失。