- import?java.util.Random;??
- import?java.util.concurrent.ArrayBlockingQueue;??
- import?java.util.concurrent.ThreadPoolExecutor;??
- import?java.util.concurrent.TimeUnit;??
- ??
- import?org.apache.cxf.endpoint.Client;??
- import?org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;??
- import?org.apache.cxf.transport.http.HTTPConduit;??
- import?org.apache.cxf.transports.http.configuration.HTTPClientPolicy;??
- public?class?WSClient?{??
- ????static?void?main(String[]?args)throws?Exception?{??
- ????????String?wsdlUrl?=?"http://172.16.11.11:8080/webws/CalculatorPort?wsdl";??
- ??????????
- ????????JaxWsDynamicClientFactory?factory?=?JaxWsDynamicClientFactory.newInstance();??
- ????????final?Client?client?=?factory.createClient(wsdlUrl);??
- //设置超时单位为毫秒??
- ????????HTTPConduit?http?=?(HTTPConduit)?client.getConduit();????????
- ????????HTTPClientPolicy?httpClientPolicy?=?new?HTTPClientPolicy();????????
- ????????httpClientPolicy.setConnectionTimeout(3000);????
- ????????httpClientPolicy.setAllowChunking(false);??????
- ????????httpClientPolicy.setReceiveTimeout(3000);???????
- ????????http.setClient(httpClientPolicy);??
- ??????????
- //用线程池试了下client对象线程安全性,发现是安全的??
- ????????ThreadPoolExecutor?pool?=?new?ThreadPoolExecutor(5,50,0)">1000,??
- ????????????????TimeUnit.MICROSECONDS,new?ArrayBlockingQueue<Runnable>(50));??
- for?(int?i=0;i<100;i++){??
- ????????????pool.execute(new?Runnable()?{??
- ????????????????@Override??
- ????????????????void?run()?{??
- ????????????????????try?{??
- ????????????????????????String?threadName?=?Thread.currentThread().getName();??
- ????????????????????????int?a?=?new?Random().nextInt(10);??
- int?b?=? ????????????????????????Object[]?res?=?client.invoke("adD",?a,b);??
- ????????????????????????System.out.println(threadName+":"+a+"+"+b+"="+res[0]);??
- ????????????????????}?catch?(Exception?e)?{??
- ????????????????????????e.printStackTrace();??
- ????????????????????}??
- ????????????????}??
- ????????????});??
- ????????}??
- ????}??
- }??
?结果:
pool-1-thread-37:0+5=5??
21:1+4=33:6+3=9??
49:0=6??
42:7+1=8??
...??
7:12??
46:9+2=11??
17:34:2+36:8+40:9=10??
26:4+35:3+7??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|