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