我已经使用JAXWS-RI 2.1基于WSDL为我的Web服务创建了一个接口.我可以与Web服务进行交互没有问题,但是无法指定向Web服务发送请求的超时.如果由于某种原因它没有响应客户端似乎永远旋转它的轮子.
狩猎已经显示我应该尝试做这样的事情:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
Run Code Online (Sandbox Code Playgroud)
我还发现,根据您拥有的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);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,无论上述哪一项是正确的,我都不知道我能在哪里做到这一点.我所拥有的只是一个Service子类,它实现了自动生成的webservice接口,并且实现了这一点,如果WSDL没有响应,那么设置属性已经太晚了:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
Run Code Online (Sandbox Code Playgroud)
任何人都能指出我正确的方向吗?!
我正在开发一个基于桌面的应用程序,就像下拉框,我有一个downloadFile(long fileId)从web下载文件的功能,应用程序的桌面端是在java中写入Web服务的.Net
我使用netbeans生成了WS客户端
问题是: 有时会发生downloadFile(long fileId)功能卡住,
它背后的原因是什么,我希望如果Web服务功能在给定时间内没有给出任何响应,我会从该功能中取回控制并在一段时间后生成新的呼叫.是否可以使用java?
编辑我认为如果可以将请求时间设置为Web服务,但我不知道如何在netbeans生成的客户端中设置超时