在谷歌应用程序引擎中使用xml rpc客户端为java-是30秒的超时? - 如何使用低级API访问

时间:2011-12-14 21:19:01

标签: java google-app-engine xml-rpc

我正在尝试在Google App Engine上的Java Web应用程序中使用XML RPC客户端来检索一些数据...事实上,获取可能需要超过30秒,这是java.net的超时限制Google App Engine for Java。

所以我有3个问题 -

(1)假设XML RPC Client(例如Apache XML RPC Client)的超时限制与java.net = 30s的超时限制相同,我是否正确?

(2)如果我的假设是正确的,那么在XML RPC客户端实际进行调用之前,是否有某种方法可以手动设置超时限制?据我所知,当使用Java.net时,可以使用低级API手动设置超时限制...但我不知道如何将低级API应用于Apache XML RPC Client ......

(3)如果用Apache的XML RPC Client无法解决我的问题,那么你可以建议一些替代的XML RPC客户端吗?

此致 Arvind的。

1 个答案:

答案 0 :(得分:1)

限制是Google App Engine在UrlFetch上提供的限制(默认为5秒)。

如果您想要更改它(即60秒),您可以执行以下操作:

XmlRpcClient client = new XmlRpcClient()
client.setTransportFactory(new XmlRpcTransportFactory(){

        @Override
        public XmlRpcTransport getTransport() {

            return new XmlRpcSunHttpTransport(client){
                protected java.net.URLConnection getURLConnection(){
                    URLConnection urlConnection = super.getURLConnection();
                    urlConnection.setConnectTimeout(60000);
                    urlConnection.setReadTimeout(60000);
                    return urlConnection;
                }
            };

        }});