使用JAX-WS为初始WSDL检索指定超时的最佳方法是什么?
似乎可以使用以下命令指定Web服务调用的超时:
((BindingProvider) port).getRequestContext().put(BindingProviderProperties.CONNECT_TIMEOUT, 2000);
((BindingProvider) port).getRequestContext().put(BindingProviderProperties.REQUEST_TIMEOUT, 2000);
,但它不影响WSDL文件的初始检索。
似乎也可以使用这个系统属性为所有HttpUrlConnection调用指定一个全局超时:
sun.net.client.defaultConnectTimeout
但是它影响所有的调用,而不仅仅是这个。
是否有一种简单的方法来使用WSDL文件的本地副本,从而不执行WSDL文件的初始检索?
谢谢
假设非托管客户端:
如果使用生成的绑定,应该有一个接受URL的构造函数。这个URL可以指向一个本地资源(比如类路径)。如果您使用的是动态客户机,请使用Service.create(URL, QName)
方法完成相同的操作。请看这里的例子。
在托管的客户端容器中,可以使用JSR 109中指定的绑定WSDL来加载服务。