我使用 JAXWS-RI 2.1为我的 Web 服务创建了一个基于 WSDL 的接口。我可以与 Web 服务进行交互,没有问题,但是还不能指定向 Web 服务发送请求的超时时间。如果出于某种原因它没有响应客户端似乎只是旋转它的车轮永远。
四处寻找发现我可能应该尝试做这样的事情:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
我还发现,根据您所拥有的 JAXWS-RI 版本的不同,您可能需要设置以下属性:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);
我的问题是,无论以上哪个是正确的,我不知道 哪里我可以做到这一点。我只有一个 Service
子类,它实现了自动生成的 webservice 接口,在这个接口被实例化的时候,如果 WSDL 没有响应,那么设置属性就已经太晚了:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
有人能告诉我正确的方向吗!