根據wsdl的url,使用axis1.4生成客戶端,並且對webservice進行調用(轉)


根據wsdl的url,使用axis1.4生成客戶端,並且對webservice進行調用
1、到www.apache.org上去下載axis-bin-1_4.zip,如要關聯源代碼就把axis-src-1_4.zip也下載下來。
2、建一個java項目,導入axis-bin-1_4.zip下的lib文件下的所有jar包
3、右鍵項目/Run As/Run Configurations...
4、然后在Main標簽下選擇對應的Project以及Main class:org.apache.axis.wsdl.WSDL2Java
5、然后在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
6、最后點Run運行————這時如果報缺少jar包,可以找spring的依賴包,里面有很多,這里還要加入 com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail- 1.4.0.jar。
7、執行上面的操作后會在我們的項目下生成一個Client文件,文件下的內容就是調用webservice的客戶端代碼

使用:都會有一個本地類   Locator 以及Soap,創建出這兩個就可以調用對應的webservice方法了
例:
TraditionalSimplifiedWebServiceLocator locator = newTraditionalSimplifiedWebServiceLocator();
TraditionalSimplifiedWebServiceSoap stub =(TraditionalSimplifiedWebServiceSoap)locator.getTraditionalSimplifiedWebServiceSoap();
System.out.println(stub.toTraditionalChinese("張三"));
還要一種情況:調用的webservice前要登陸,這種情況怎么處理?
1、先登陸得到sessionId
2、把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了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM