(二)Java EE 5實現Web服務(Web Services)及多種客戶端實例-實現Web服務

()JAVA EE 5平臺上實現Web服務實例(模擬股票行情機)

JAVA EE 5平臺上的JAX-WS

J2EE 1.4平臺上實現Web Services的是JAX-RPC, 而到了JAVA EE 5, 重新命名爲JAX-WS.

JAX-RPCJAX-WS最大的不同是編程模式的差別。 JAVA EE 5採用了JAVA SE 5 Java語言新特性,在JAX-WS使用了大量的標註(annotation, 因而減少了Web Services的代碼量與部署工作,自然也簡化了開發。

實現Web服務(模擬股票行情機)

這個例子中採用自低向上的開發方式,即先實現一個模擬的股票行情機,再把這個應用程序發佈爲Web服務,即最終產生WSDL

JAVA EE 5 平臺上可以最終發佈爲Web服務的模塊有三種, Servlet, EJB以及POJO (plain old Java Object).

下面以POJO爲例,來建立模擬的股票報價Web服務

準備及安裝軟件

  1. JAVA SE 5 (JDK 1.5)及以上版本(http://java.sun.com/javase/downloads/index.jsp )

  2. NetBeans 5.5.1 (http://zh-cn.netbeans.org/index_zh_CN.html )

  3. Sun Application Server 9 (https://glassfish.dev.java.net/): 可以直接下載帶Sun Application Server 9NetBeans (http://www.netbeans.info/downloads/index.php ) 

建立模擬的股票報價Web服務

1。打開NetBeans 5.5.1, 菜單“文件”中選擇“新建項目”

2。“新建項目”窗口中,“類別”欄中選擇“Web”,“項目“欄中選擇“Web應用程序”,點擊“下一步”按鈕。

3。“新建Web應用程序 ”窗口中,在“項目名稱”欄中輸入“StockQuoteWS”

“服務器”中選擇“Sun Application Server 9”, 這是Web Services 部署和運行的平臺

Java Ee版本”中選擇“Java EE 5”, 這樣可以使用JAX-WS來開發Web Services




4。點擊“完成”按鈕後,在NetBeans IDE中生成StockQuoteWS項目。接下來建立一個StockQuotePOJO類。鼠標右鍵點擊“StockQuoteWS項目”,選擇“新建”->“Java類”。

5。“新建Java類 ”窗口中,輸入類名和包名,比如

類名:StockQuote

包名:com.sun.sdn.demo.ws



6。爲StockQuote類添加一個getQuote()的方法. 方法實現如下:

public String getQuote(String stockCode){

String quote = "";

if (ht.containsKey(stockCode))

quote = (String)ht.get(stockCode);

return quote;

}

7。把POJO發佈爲Web Services,在JAX-WS中非常簡單,僅僅需要在類前面加上@WebService() 。而POJO類中所有的公共方法也都會轉換爲Web Services 的方法.

/*

* StockQuote.java

*

* Created on 2007820, 下午11:25

*

* To change this template, choose Tools | Template Manager

* and open the template in the editor.

*/


package com.sun.sdn.demo.ws;

import javax.jws.WebService;

/**

* @author Ada Li

*/

@WebService()

public class StockQuote {

/** Creates a new instance of StockQuote */

public StockQuote() {

init();

}

java.util.Hashtable ht = new java.util.Hashtable();

void init(){

ht.put("601988.ss", "5.90");

ht.put("000002.sz", "30.11");

}

public String getQuote(String stockCode){

String quote = "";

if (ht.containsKey(stockCode))

quote = (String)ht.get(stockCode);

return quote;

}

}

StockQuote類添加@WebService()標註(annotation)之後,就可以在NetBeansStockQuoteWS項目中看到新生成“Web服務”目錄,目錄下列出了”StockQuote”以及方法“getQuote”




8。到這一步已經完成了StockQuoteWeb服務開發,接下來要部署以及測試這個Web服務。

9。鼠標右鍵點擊“StockQuoteWS”項目,選擇“部署項目”。部署完成後,可以在NetBeans “運行環境”->"服務器"->“Sun Application Server 9”->"應用程序"->“Web應用程序”下看到“StockQuoteWS”, 表示Web服務成功部署在了Sun Application Server 上。



10NetBeans IDE 提供了Web服務的測試工具。鼠標右鍵點擊“StockQuoteWS”項目->"Web服務"-〉“StockQuote”,選擇“測試Web服務”,瀏覽器會打開“StockQuoteService Web Service Test”窗口。在文本框中輸入“601988.ss”,點擊“getQuote”按鈕。



輸出結果如下圖:



11。在這個Java EE 5 平臺上實現的Web服務,可以通過Web服務的測試工具察看WSDL以及SOAP的信息。而UDDI,測試工具使用的是NetBeans自帶的Web Services Registry

StockQuoteWS部署完成後,最重要的記住WSDL的位置,即http://localhost:8080/StockQuoteWS/StockQuoteService?WSDL接下來創建Web服務客戶端時候,需要這個URL.

本文轉載於:http://blog.csdn.net/Adali/archive/2007/08/21/1753363.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章