CXF(2) 用戶端的開發, WSDL解析

來源:互聯網
上載者:User

寫代碼容易,但是理解其中的原理和過程。

web service 本質就是XML的應用, 中間的傳送的訊息格式都是XML格式,這就屏蔽各種程式設計語言的差別。

就是說,只要支援XML解析的語言,就支援web service。

web service 的調用本質:

1) 用戶端把調用的參數,轉換為XML文檔片段(SOAP訊息, input)

2) 用戶端通過網路把文檔片段傳給遠程伺服器。

3) 伺服器接收XML文檔片段。

4)伺服器解析XML文檔片段,提取其中的資料,並把資料轉換為調用所需的參數。

5)伺服器執行方法

6)得到方法的傳回值,並將其轉換為XML 文檔片段(SOAP訊息,ouput)

8)用戶端接收文檔片段,並解析,得到調用的資料。

Web service 的三個技術基礎:

1、 WSDL 

1) Web service 介面

1. types (標準的schema)

2. 有N個方法(操作),就有2N的訊息(Message),一個input和一個output

2)Web Service 實現

1. binding元素 --  N個更詳細的operation

2. service  -- 指定  web service 的伺服器位址


2、

下面說用戶端的調用:

上次我們產生的XML描述資訊在這個地址:

http://10.5.82.195/hellows?wsdl

1、使用CXF的工具產生用戶端代碼。

在CXF的bin目錄下有我們的產生工具 wsdl2java。 為了方便,可以把bin目錄放在path環境變數下。

在eclipse中建立一個用戶端工程。

開啟CMD,進入到改工程的src目錄下。 

使用命令: wsdl2java http://10.5.82.195/hellows?wsdl

代碼已產生。 重新整理項目。

2、調用

自動產生的程式碼,包名和伺服器的一致。 按理說,服務端用什麼包名用戶端是不會知道的。

但是別忘了,WSDL的描述檔案裡,命令空間是根據包名來命名的。 而用戶端的又是根據描述檔案產生的程式碼。

當然,就什麼包名是無所謂的。

建立一個ClientTest類測試,調用也很簡單。

public class ClientTest {/** * @param args */public static void main(String[] args) {HelloWS factory = new HelloWS();Hello hello = factory.getHelloImplPort();System.out.println(hello.sayHello("dedede"));}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.