我正在尝试在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的。
答案 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;
}
};
}});