java客户端调用webservice 超时问题

在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());    }(答案有帮助的话,再加分)

第1个回答  2011-10-19
用多线程来处理类似问题
将调用这个WebService的程序放到一个独立线程A中,再创建另一个线程B用来计时,线程A和线程B共享一个变量responseOK。

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

似乎webService调用的时候如果服务端超时应该会有异常触发的,截获此异常即可。

java客户端调用webservice 超时问题
在线程A中调用WebService之前启动线程B,成功返回后设定responseOK=true。线程B启动后计时,如果responseOK==true则停止计时,如果计时超过20秒,则终止线程A并返回错误信息。似乎webService调用的时候如果服务端超时应该会有异常触发的,截获此异常即可。

java客户端调用webservice时 连接超时知道是网络原因 ,如何重试如果不...
先把连接超时的时间设置长一点!抛异常处理时,空处理异常,继续调用连接方法,不过,服务器一般都有连接超时的时间的,超过时间连接不上,就会自动中断客户端的请求。释放资源!

如何通过java代码webservice设置超时时间
1. 服务器端设置超时 在 web.config 的 system.web 里添加如下配置项:< httpRuntime executionTimeout="30"\/> 以上时间单位是秒.记得要把 web.config 的 debug 模式关闭:< compilation defaultLanguage="c#"debug="false"\/> 2. 客户端设置超时 在 WebService 的客户端代理程序(用 wsdl.exe 生成...

java程序在调用webservice中间出现异常,怎么办
首先要判断是哪里出现的异常,这个从调用端去查看,看是不是请求webService的那句话报错,如果正好是那句话的问题,那就是沟通出现的问题,一般是没说清接口的条件什么的,如果不是,那就接着判断,如果是在调用接口之前报错,那肯定是调用端的问题,如果是那句话之后,就要具体看是不是由于被调用端的...

WebService接口调用时,出现java.lang.RuntimeExcep异常是怎么回事...
WebService几个常见的异常分类:1、如果出现这个错误:java.lang.NoClassDefFoundError: javax\/xml\/soap\/SOAPException,原因是没有导入 axis2-saaj.jar包 2、如果出现这个错误:java.lang.NoClassDefFoundError: javax\/xml\/soap\/SOAPException,原因是没有导入 axis2-saaj.jar包 3、如果出现这个错误:org.apache....

“Java:用axis调用webservice方法时报(400)Bad Request错,请问您当...
1、打开internet选项 2、删除所有的cookies 3、点隐私把隐私级别设置到最高阻止所有的cookie 这样浏览网页的时候就不会再出现HTTP 400 - 错误请求的问题了。但是浏览某些需要cookie的网站(如:论坛或需要登陆的站点)时候就无法登陆了,所以在浏览完后记得要把隐私级别降低调回来,登陆站点以后保留cookies就...

java调用WebService接口为什么这么慢
1.在java webservice调用的方法前后增加开始时间和结束时间,可以得到最终的webservice执行时间,这样大概可以判断排除网络的因素 2.换个数据库执行多次取平均值看是否有异同 3.直接在db层做类似的sql查询动作看查询时间,记得也是多次执行取平均值 4.是否有其他除了webservice调用外的java方法执行呢?

java调用webService接口时,出现异常:An error was discovered processing...
在服务端加入了Security的支持后,客户端会报错误:An error was discovered processing the <wsse:Security> header 在header要有security的信息

java调用webservice出错了!
String endpoint = "http:\/\/127.0.0.1:8082\/webservice\/services\/Login.jws";\/\/ 创建一个服务(service)调用(call)Service service = new Service();Call call = (Call) service.createCall();\/\/ 通过service创建call对象 \/\/ 设置service所在URL call.setTargetEndpointAddress(new java.net.URL(...

如何解决java axis 调用webservice服务器操作异常
一、WebService在cs后台程序中的调用 A、通过命名空间和类名直接调用 示例:WebService ws = new WebService();string s = ws.HelloWorld();B、通过添加WEB引用的方式调用,首先添加WEB引用,通过URL指向WEBSERVICE,指定WEB引用名,假设为KK;示例:kk.WebService n = new kk.WebService();string ss...

相似回答