使用axis2生成webserice客戶端時,在引用的jar包axis2-kernel下的org.apache.axis2.client.options類中預設設定通訊超時時間為30s,jar包原始碼如下,可以看到預設時間為final常量:
package org.apache.axis2.client;
public class options implements externalizable,safeserializable
return this.parent.gettimeoutinmilliseconds()==-1l?30000l:this.timeoutinmilliseconds;
}}
為了在外部能夠設定超時時間,新增了一下**【預設超時時間同jar包中原來30s同】:
private long timeout=30000l;
public long gettimeout()
public void settimeout(long timeout)else
}public long gettimeoutinmilliseconds()
return this.parent.gettimeoutinmilliseconds()==-1l?gettimeout():this.timeoutinmilliseconds;
}
在客戶端中手動設定超時時間,例如使用axis2生成的客戶端【比如reqs500000001stub類】
在其構造方法中找到serviceclient類的例項,有如下**
_serviceclient=new org.apache.axis2.client.serviceclient(configurationcontext,_service);
然後手動新增超時時間**【注意資料型別】,比如設定為60s:
_serviceclient.getoptions().settimeout(60000l)
現在超時時間就能按照實際需求進行設定了。
僅用交流,如果不妥,望指正
xfire 客戶端 超時異常
今天碰到個問題,xfire客戶端呼叫遠端的webservice伺服器,在異常日誌stdout中打了些read timeout 後,從jconsole觀察到resin的執行緒數量直線上公升,直到把所有執行緒都佔滿,後來看到是xfire的xfireclientfactorybean的 getclient...
客戶端呼叫服務端webservice的埠問題
今天有乙個同事過來問 他有乙個程式在a伺服器上調第三方b伺服器簡訊傳送服務介面 webservice 無論是否傳送成功,服務介面都會返回狀態。現在客戶要做每乙個伺服器 做入站埠管控,一切不必要的埠都要禁掉,問這邊需要開放哪些入站埠,前提不要影響簡訊的傳送和狀態返回。同事說連線時己方的產生的埠號是隨機...
webservice生成本地客戶端呼叫
生成如下幾個檔案 生成客戶端後有兩種方法進行方法的呼叫 stub.方法名 messageheader rs,xmlstring rs 這種可以後期對url進行設定,適用於url更改的情況.servicelocator zp new servicelocator zp.get httpport 方法名...