Java調用webservice接口


1.准備要調用的webservice接口的wsdl地址,比如網上的查詢天氣接口:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

2.准備Axis2工具:將axis2-1.5.6-bin.zip解壓,然后進入bin目錄下;(工具可以在這個網址獲取:http://archive.apache.org/dist/axis/axis2/java/core/1.5.6/

3.將wsdl文件保存到bin目錄下,如下;

 4.在該目錄下打開cmd窗口(按住shift鍵,然后點擊鼠標右鍵,選擇“在此處打開命令窗口”),如下:

 

5.在黑窗口中輸入命令:wsdl2java -uri WeatherWS.wsdl -o 111(注意:111為輸出文件名,可以隨便輸),點擊回車生成客戶端調用代碼

6.當前目錄生成了一個文件夾名為“111”的文件,里面就是客戶端調用webservice服務的代碼啦,可以一步步點進去看看,生成了兩個java文件

 

 7.在eclipse建一個項目,將代碼復制到src下(注意,要從src下拷貝)

8.在里面寫段代碼來測試調用接口,代碼如下:(注意,將axis2-1.5.6-bin\axis2-1.5.6\lib路徑下的jar包添加到eclipse項目下的libs文件夾里面)

package cn.com.webxml;

import java.rmi.RemoteException;

import cn.com.webxml.WeatherWSStub.ArrayOfString;
import cn.com.webxml.WeatherWSStub.GetWeather;
import cn.com.webxml.WeatherWSStub.GetWeatherResponse;

public class Test {
    
    public static void main(String[] args) throws RemoteException {
        
        // 建立一個服務
        WeatherWSStub service = new WeatherWSStub();
        
        // 構造入參
        GetWeather getWeather = new GetWeather();
        getWeather.setTheCityCode("南京");
        getWeather.setTheUserID("");
        
        // 執行接口方法
        GetWeatherResponse getWeatherResponse = service.getWeather(getWeather);
        
        // 打印返回的結果
        ArrayOfString arrayOfString = getWeatherResponse.getGetWeatherResult();
        String[] ss = arrayOfString.getString();
        
        for (int i = 0; i < ss.length; i++) {
            System.out.println(ss[i]);
        }
        
    }
    
}

9.將程序跑一把,得到打印信息,訪問成功

 

 

 

Tips:

如果在第5步生成不了客戶端代碼,可以配一下環境變量試試,配置內容如下:

變量名:AXIS2_HOME

變量值:D:\Program Files (x86)\axis2-1.5.6(你的電腦不一定是這個)

然后在Pah的最前面加上%AXIS2_HOME%/bin;(注意有個分號)

 

不配環境變量也可以,在axis的bin下面新建一個bat文件,直接雙擊就可以了(其實在bat文件中配置了環境變量),bat文件如下:

@echo off
setlocal
rem 下面兩行是環境變量
set "AXIS2_HOME=D:\ProgramFiles\axis2-1.5.6-bin\axis2-1.5.6" 
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181"
rem 其中WeatherWS是wsdl文件的文件名,222是輸出文件夾,可以隨便命名
wsdl2java -uri WeatherWS.wsdl -o 222

 

 

 

其實上面調用webservice的方法對於任意的wsdl地址都可以用,寫客戶端調用接口的代碼也是一個套路。

 


免責聲明!

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



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