根據wsdl的url,使用axis1.4生成客戶端,而且對webservice進行調用
一、到www.apache.org上去下載axis-bin-1_4.zip,如要關聯源代碼就把axis-src-1_4.zip也下載下來。
二、建一個java項目,導入axis-bin-1_4.zip下的lib文件下的全部jar包
三、右鍵項目/Run As/Run Configurations...
四、而後在Main標籤下選擇對應的Project以及Main class:org.apache.axis.wsdl.WSDL2Java
五、而後在Arguments標籤下的Program arguments:下輸入-o Client -d Session -Strue D:\project\FIIS_CRJ_AXIS\dest\test.wsdl
其中D:\project\FIIS_CRJ_AXIS\dest\test.wsdl也能夠是具體的wsdl路徑http://192.168.1.10:7001/test/test?WSDL
六、最後點Run運行————這時若是報缺乏jar包,能夠找spring的依賴包,裏面有不少,這裏還要加入 com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail- 1.4.0.jar。
七、執行上面的操做後會在咱們的項目下生成一個Client文件,文件下的內容就是調用webservice的客戶端代碼
使用:都會有一個本地類 Locator 以及Soap,建立出這兩個就能夠調用對應的webservice方法了
例:
TraditionalSimplifiedWebServiceLocator locator = newTraditionalSimplifiedWebServiceLocator();
TraditionalSimplifiedWebServiceSoap stub =(TraditionalSimplifiedWebServiceSoap)locator.getTraditionalSimplifiedWebServiceSoap();
System.out.println(stub.toTraditionalChinese("張三"));
還要一種狀況:調用的webservice前要登錄,這種狀況怎麼處理?
一、先登錄獲得sessionId
二、把sessionId設置到header裏,找到 Stub類下的createCall()方法
protected org.apache.axis.client.Call createCall() throwsjava.rmi.RemoteException {
try {
org.apache.axis.client.Call _call = super._createCall();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//設置頭信息
SOAPHeaderElement hElement = new SOAPHeaderElement(newQName("sessionInfo"));
SOAPElement sid = hElement.addChildElement("sessionId");
sid.addTextNode(Remote_SessionInfo.getSessionId());
_call.addHeader(hElement);
這樣就能夠調用webservice了。