Web service,XSD及WSDL的一些使用

nintyuui發表於2021-09-09

一般是釋出了WEB SERVICE介面,我們就可以等到相應介面的WSDL檔案,而WSDL檔案中經常會用到一些XSD定義的類。但其實我們可以透過先定義WSDL檔案,再透過一些工具自動生成WEB SERVICE的介面。
釋出WEB SERVICE介面,可以透過XFIRE,JAX WS等技術做到。
XSD,WSDL檔案,我們可能透過XML SPY,也可以透過ECLISPE來做,前者要錢的噢

以前我透過com.sun.tools.xjc.XJCTask 集合ANT來基於XSD生成相應的CLASS.
今天發現透過JDK6帶的WSIMPORT命令,很方便的就基於WSDL生成了應該的CLIENT程式碼,以及所引入的XSD定義的類,超級方便。
wsimport
wsimport也是在JDK的bin目錄下的一個exe檔案(Windows版),主要功能是根據服務端釋出的wsdl檔案生成客戶端存根及框架,負責與Web Service伺服器通訊,並在將其封裝成例項,客戶端可以直接使用,就像使用本地例項一樣。對Java而言,wsimport幫助程式設計師生存呼叫webservice所需要的客戶端類檔案.java和.class。要提醒指出的是,wsimport可以用於非Java的伺服器端,如:伺服器端也許是C#編寫的web service,透過wsimport則生成Java的客戶端實現。
命令引數說明: -d 生成客戶端執行類的class檔案的存放目錄 -s 生成客戶端執行類的原始檔的存放目錄 -p 定義生成類的包名

命令範例:wsimport -d ./bin -s ./src -p org.jsoso.jws.client.ref

測試程式碼
package com.gao.webservice;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
public class Test {
public static void main(String[] args) throws MalformedURLException {

            URL url = new URL("");
            QName qName = new QName("","MyServiceImplService");

            MyServiceImplService ms = new MyServiceImplService(url,qName);
            MyService myService = ms.getMyServiceImplPort();
            System.out.println(myService.add(22, 12345));
            System.out.println(myService.minus(5454, 54));
    }

}
透過不同的方法實現系統的目的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2807497/,如需轉載,請註明出處,否則將追究法律責任。

相關文章