❶ webservice瓒呮椂璁剧疆
package com.primeton.mq.test;
importcom.primeton.mq.service.DemoService;
importorg.apache.cxf.endpoint.Client;
importorg.apache.cxf.jaxws.JaxWsProxyFactoryBean;
importorg.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
importorg.apache.cxf.transport.http.HTTPConit;
importorg.apache.cxf.transports.http.configuration.HTTPClientPolicy;
publicclassdemo{
publicstaticvoid main(String[] args) {
//鍒涘缓鍔ㄦ佸㈡埛绔
=JaxWsDynamicClientFactory.newInstance();
Clientclient = factory.createClient("http://localhost:8090/demo/api?wsdl");
// 闇瑕佸瘑鐮佺殑鎯呭喌闇瑕佸姞涓鐢ㄦ埛鍚鍜屽瘑鐮
//client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME,PASS_WORD));
HTTPConitconit = (HTTPConit) client.getConit();
= newHTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(2000);//杩炴帴瓒呮椂
httpClientPolicy.setAllowChunking(false);//鍙栨秷鍧楃紪鐮
httpClientPolicy.setReceiveTimeout(120000);//鍝嶅簲瓒呮椂
conit.setClient(httpClientPolicy);
//client.getOutInterceptors().addAll(interceptors);//璁剧疆鎷︽埅鍣
try{
Object[] objects = newObject[0];
// invoke("鏂规硶鍚",鍙傛暟1,鍙傛暟2,鍙傛暟3....);
objects = client.invoke("sayHello","sujin");
System.out.println("杩斿洖鏁版嵁:"+ objects[0]);
}catch(Exceptione){
e.printStackTrace();
}
❷ java axis2 调用webservice 怎么捕获超时异常(即超时了让它停下来,不要报错)
超时来分两种,一自种是客户端请求连接超时,一种是服务端处理时间过长,客户端等待超时。 看你要捕获哪一种?
第一种你可以捕获ConnectTimeOutException;
第二种你可以在客户端设置超时时间,比如发起请求之后服务端5秒还未返回处理后的结果就认为超时;
在异常处理中执行正常业务逻辑即可。
❸ 涓轰粈涔堣块棶web service鎬绘槸鏄剧ず杩炴帴瓒呮椂锛
鍙鑳芥槸缃戠粶杩炴帴涓嶆e父銆佹湇鍔″湴鍧涓嶆g‘銆佹湇鍔℃e湪杩愯屻侀槻鐏澧欏拰浠g悊璁剧疆涓嶆g‘銆佽锋眰鏍煎紡鍜屽弬鏁颁笉绗﹀悎绛夈
1銆佺綉缁滆繛鎺ヤ笉姝e父
搴旇ユ鏌ユ偍鐨勭綉缁滆繛鎺ユ槸鍚︽e父銆傚傛灉鎮ㄦ棤娉曡繛鎺ュ埌浜掕仈缃戞垨涓嶹eb Service鏈嶅姟鍣ㄧ殑杩炴帴鍑虹幇闂棰橈紝鍒欏彲鑳芥棤娉曡块棶Web Service鏈嶅姟銆傚皾璇曟墦寮鍏朵粬缃戠珯鎴栨湇鍔℃潵纭瀹氭偍鐨勭綉缁滆繛鎺ユ槸鍚︽e父銆
❹ java客户端调用webservice 超时问题
用多线程来处理类似问题
将调用这个WebService的程序放到一个独立线程A中,再创建另一内个线程B用来计时,线容程A和线程B共享一个变量responseOK。
在线程A中调用WebService之前启动线程B,成功返回后设定responseOK=true。
线程B启动后计时,如果responseOK==true则停止计时,如果计时超过20秒,则终止线程A并返回错误信息。
似乎webService调用的时候如果服务端超时应该会有异常触发的,截获此异常即可。
❺ Java webservice通信 由于服务端查库耗时太长 我的客户端总是在还没有得到结果的时候连接就断了
HTTP的通讯模式就是面向短链接的,虽然可以通过设置连接timeout的时间来延长超时时间,但这不是根本解决问题的方法。建议两个思路:
1.使用Java Socket实现长连接通讯。
2.不改通讯协议,将同步接口改为异步接口,通过异步方式实现长时间任务的处理。大致思路是,服务端收到客户端请求后立即发送一个request_id给客户端,然后客户端用这个id定时到服务端查询结果。