❶ 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定時到服務端查詢結果。