我正在使用Grails Ws-Client插件 但我的应用程序等待从我正在使用Web服务的服务器返回SOAP响应,我的应用程序等待此代码
def proxy = webService.getClient(wsdlUrl)
当服务器关闭或网络连接缓慢时,这通常会发生。
等待也会继续,以防万一从服务器暂时删除webservice,并且当尝试访问Web浏览器时,包含wsdl的url会重定向到网站的主页。
如何检测wsdl是否存在以及如何设置超时属性,以便等待响应存在10秒然后停止等待响应并且代码在停止时正常开始执行。 / p>
我也没有任何异常或错误。
答案 0 :(得分:0)
默认情况下,客户端上没有设置读取和/或连接超时。如果Web服务已关闭,这应该会有所帮助:proxy.setConnectionTimeout(value_in_milliseconds)
我不确定是否设置了读取超时,如果主机启动并接受连接但Web服务不可用或没有响应,则会看到这种情况。我们发现的最佳解决方案是使用Apache Commons HTTP客户端而不是默认客户端,这为客户端的连接设置提供了更精细的配置。它们也可能在WS-Client插件中,但相关文档(实际上是GroovyWS文档)似乎没有提及有关读取超时的任何内容。