jdk6-webservice超时设置

在开发webservice客户端的代码中,必须需要设置timeout与connection-timeout两个参数,因为很多时候客户端的应用不可能一直阻塞的等待服务端的响应。下面就针对jdk6开发的webservice客户端,对于上面两个参数的设置做一个说明:

一、直接用jdk中的java.net.URLConnection(也可以是java.net.HttpURLConnection)做客户端的开发。

Java代码   收藏代码
  1. URL url = new URL(urlString);  
  2. URLConnection conn = url.openConnection();  
  3. conn.setUseCaches(false);  
  4. conn.setDoInput(true);  
  5. conn.setDoOutput(true);  
  6. conn.setConnectTimeout(connectTimeout * Millisecond);  
  7. conn.setReadTimeout(reaquestTimeout * Millisecond);  

 connectTimeout * Millisecond和reaquestTimeout * Millisecond:Millisecond=1000(表示1000毫秒的意思)

connectTimeout和reaquestTimeout是设置的时间数。

 

二、基于jdk6的wsimport命令通过wsdl文件构建的客户端(见本博客http://xm-koma.iteye.com/blog/1605800):

Java代码   收藏代码
  1. HuaXiaServiceImplPortType hxip = (HuaXiaServiceImplPortType) hxs  
  2.         .getHuaXiaServiceImplPort();  
  3. Map<String, Object> ctxt = ((BindingProvider) hxip)  
  4.         .getRequestContext();  
  5. ctxt.put("com.sun.xml.internal.ws.connect.timeout", connectTimeout  
  6.         * Millisecond);  
  7. ctxt.put("com.sun.xml.internal.ws.request.timeout", reaquestTimeout  
  8.         * Millisecond);  

 

com.sun.xml.internal.ws.connect.timeout和com.sun.xml.internal.ws.request.timeout两个参数来自com.sun.xml.internal.ws.developer.JAXWSProperties这个类中的字符串常量。但由于很多小版本号较低的jdk6中没有这个类,所以写成字符串也是可行的。

 

另外可参考下面的文章:

http://stackoverflow.com/questions/3130913/setting-jax-ws-client-timeout
http://androidyo.iteye.com/blog/624015
http://www.blogjava.net/supercrsky/articles/247449.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值