java客户端调用webservice时 连接超时知道是网络原因 ,如何重试如果不重试程序就死琐了,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java客户端调用webservice时 连接超时知道是网络原因 ,如何重试如果不重试程序就死琐了,相关的知识,希望对你有一定的参考价值。
我想要的结果是抛
异常时捕获异常,然后重试我写的方法直到连接到为止。谢谢
在线等答案 最好有详细的代码
抛异常处理时,空处理异常,继续调用连接方法,不过,服务器一般都有连接超时的时间的,超过时间连接不上,就会自动中断客户端的请求。释放资源!追问
何为空处理异常,是有一种异常为空异常,还是Exception异常,里面什么都不写,就写我的方法
追答嗯嗯!就是不处理异常,直接重新调用你的连接方法!其实可以设置一个时间点,连接不上,隔了多少时间,重新连接,写成线程,定时运行更有效率!
追问我就是写的线程在里面没每隔5秒就运行一次,都是可以运行的,但是只要一报这个连接超时程序就无法运行了,我之前也试过你说的就写在catch语块里但是就是不运行,它也相当于是一种循环了 是吧,还有没有其它的方式,谢谢
追答1.比如说你的连接类和方法是:
Connet
conect()
try catch(Execption e)log.error(e);
2.你的执行线程:
ConnectThread extends Thread
ConnectThread(Connet conn)
run()conn.conect();
3.利用定时器去做定时调用,而且应该是服务器连接超时的一个周期,比如说,服务器是60S的,那么你就60S之后再执行这个线程。
---不知道这样可否可行呢。。。
while(continueconnect==true)
try
connect(); //这里写连接代码
continueconnect=false;//如果 content成功了 就 设置continueconnect=false
catch(Execption e)
continueconnect=true;//如果 content出错了了 就 设置continueconnect=true;以便继续 连接
log.error(e);
参考技术B 你先测试一下网络是否通,telnet IP 端口
关于webservice的同时调用的问题?
如果多个请求同时调用的服务函数,是不是先调用的人服务器先给他处理,其余的人在等待状态?
等待会超时么?
1,一个客户端一个Service实例通过异步共同访问一个接口,这样需要等待的。
2,一个或者多个客户端不同Service实例共同访问一个接口,这样不需要等待。 参考技术A 在调用的时候,一定会初始化一个web service实例,然后调用实例中的方法。每一个客户端都会初始化一个实例,webservice可以看作是一个资源,可以被多个客户端同时请求,但是能够接受多少连接,是看服务器的本回答被提问者和网友采纳 参考技术B 这个和你的服务器的配置与性能有关,每个人调用的时候是单独打开一个线程,互相之间不莫顿的,因此你的担心是多余的。 参考技术C 汗、不是那样子的。调用webservice跟你在类库调用方法是一样的都可以同时调用无需等待的、追问
不是单线程的么?
追答不是单线程、你可以试试
参考技术D 在调用的时候,一定会初始化一个web service实例,然后调用实例中的方法。每一个客户端都会初始化一个实例,webservice可以看作是一个资源,可以被多个客户端同时请求,但是能够接受多少连接,是看服务器的以上是关于java客户端调用webservice时 连接超时知道是网络原因 ,如何重试如果不重试程序就死琐了,的主要内容,如果未能解决你的问题,请参考以下文章
java axis2 调用webservice 怎么捕获超时异常(即超时了让它停下来,不要报错)
axis2 调用 webService 报超时错误 org.apache.axis2.AxisFault: Connection reset