java客户端调用webservice 超时问题

在action调用了webservice的一个接口,希望能超过20秒,我们就在页面上提示接口返回超时,但在20秒内只要接口有返回,接口马上停止等待向下执行,请问这要怎么写... 在action调用了webservice的一个接口,希望能超过20秒,我们就在页面上提示接口返回超时,但在20秒内只要接口有返回,接口马上停止等待向下执行,请问这要怎么写代码才好呢?客户端代码如下:String address = "http://localhost:8080/axis2spring/services/WeatherService";  EndpointReference target = new EndpointReference(address);    RPCServiceClient serviceClient = new RPCServiceClient();  Options options = serviceClient.getOptions();  options.setTo(target);    QName opGetWeather = new QName("http://service","getWeather");    Object[] opGetWeatherArgs = new Object[]{};  Class[] returnType = new Class[]{Weather.class};  Object[] response = serviceClient.invokeBlocking(opGetWeather, opGetWeatherArgs, returnType);  Weather ret = (Weather) response[0];  if(ret == null){   System.out.println(" has no record");  }else{    System.out.println("Temperature: " + ret.getTemperature());    }(答案有帮助的话,再加分) 展开
 我来答
tooper2
2011-10-19 · TA获得超过1019个赞
知道小有建树答主
回答量:1137
采纳率:66%
帮助的人:1037万
展开全部
用多线程来处理类似问题
将调用这个WebService的程序放到一个独立线程A中,再创建另一个线程B用来计时,线程A和线程B共享一个变量responseOK。

在线程A中调用WebService之前启动线程B,成功虚顷基返回后设定差谨responseOK=true。
线程B启动后计时,如果responseOK==true则停止计时,如果计时超过20秒,则终止线程A并返回错误信息。

似乎webService调用的时候如果服务端超时应该会有异常触发的,截乎袭获此异常即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式