webservice之Http传输错误问题
1.背景:调用第三方webservice服务,正常调用,但是最近由于第三方更换远程调用地址,并且发布服务器(A)是通过代理的方式请求真实服务器地址(B),于是本以为很简单的将客户端调用地址修改为发布地址(A)既可以,但是修改之后程序始终报错(连接超时错误)。
2.错误截图:
3.解决方式:
String wsdlURL = "xxxx"; //要请求的URL地址
...
MyService myService = serviceWebClient.getPort(MyService.class); BindingProvider bindingProvider = (BindingProvider) myService; bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, wsdlURL);
加上这两段之后就可以了,就是绑定远程调用地址的意思。
4.分析原因:
由于服务端采取了代理的方式,也就是将真实服务发布在了服务器B上,所以存根指向的端点是B,但是我的服务不在同一台机器上,因此很明显无法到达它。为了解决这个问题,您必须像这样更正存根上的URL