sockettimeoutexception在Google App引擎(JAVA)上令人沮丧。需要解决方法

时间:2011-08-31 18:21:48

标签: google-app-engine

我正在连接到以下wsdl上的第三方服务器 http://webservices.ticketvala.com/axis2/services/WSTicketvala?wsdl

我正在使用JAX-WS生成客户端代码并在第三方服务器上调用相关方法。第三方服务器可能需要15-25秒之间的时间来发送响应。 它在tomcat上工作正常。

现在,当我将其部署到GAE 1.5.3时,通常我会在不到10秒的时间内获得ScocketTimeoutException。有时连续20秒都是成功的。我想知道为什么它失败多次。以及任何增加此响应截止时间的工作方法/永远避免此ScoketTimeOutException。

类似地,

我在http://ticketgoose.com/bookbustickets/TGWSStationNameResponseAction.do处有另一个RESTfull服务?“+ “事件= getStationDetails&安培;密码= 123456&安培;用户id = ctshubws

我通过java.net.URL连接它,很多次我得到TimeoutException。如何将超时限制提高到30秒以上?

由于 迪帕克

1 个答案:

答案 0 :(得分:0)

用户启动的请求在Google App Engine中完成时间不得超过30秒: http://code.google.com/intl/en/appengine/docs/java/runtime.html#The_Request_Timer

在用户发起的请求中对外部URL的HTTP请求完成时间不能超过10秒: http://code.google.com/intl/en/appengine/docs/java/urlfetch/overview.html#Requests

如果您需要在30秒以上完成整体工作并且可以在后台执行(不需要直接通过HTTP返回响应),请使用Task Queues。请注意,使用任务执行后台工作的最简单方法是使用DeferredTask。最好的部分:对任务的外部URL的HTTP请求最多可能需要10 minutes to complete