程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用Eclipse和Java SE 6創建獨立Web Services應用程序,第1部分

使用Eclipse和Java SE 6創建獨立Web Services應用程序,第1部分

編輯:關於JAVA

使用Eclipse和Java SE 6創建獨立Web Services應用程序,第1部分: Web Services服務端應用程序

開始之前

關於本系列

此系列教程演示如何使用 Java SE 6 創建可輕松地從命令行而不是從 Web 應 用程序服務器容器中運行的獨立 Web Services 服務端和客戶端應用程序。使用 簡單的 Hello World 示例,您將利用 Eclipse IDE、Java SE 6 和 Apache Ant 輕松創建完全可以正常工作的 Web Services 服務端和客戶端應用程序。您還將 使用 TCP/IP Monitor 檢查服務器與客戶端之間的通信流量,並使用 Eclipse Web Services Explorer 工具測試 Web Services 。

關於本教程

本教程是該系列的第 1 部分,將向您介紹如何使用 Eclipse IDE、Java SE 6 和 Ant 發布 Web Services 應用程序。本教程為第 2 部分奠定了基礎,第 2 部 分將描述 Web Services 客戶端應用程序的創建。

目標

完成本教程後,您應該知道:

什麼是 Web Services ,以及它使用的與從 Eclipse 中用於查看已發布的 Web Services 描述語言(Web Services Description Language,WSDL)文件的 浏覽器相關的標准是什麼。

如何創建 Web Services 的服務器端,包括如何安裝和配置 Eclipse IDE 和 Java Development Kit (JDK),以便它們協同工作以生成使用 Java SE 6 來編譯 的代碼。

如何在 Eclipse IDE 中使用基於 Ant Java 的構建工具來運行特殊 Java 命 令以生成代碼的某些部分。

先決條件

本教程包括為具備一些 Java 語言和 Ant 構建的實際應用知識的初級和中級 Java 程序員編寫的簡單步驟。初學者到更高級的 Java 開發人員將獲得一些知識 :學會如何構建、部署和運行獨立 Web Services 服務端和分布式客戶端,以提 供防火牆友好的遠程通信和應用程序處理。

系統要求

要按照示例進行操作,您需要下載:

Eclipse IDE for Java Developers

Java SE 6

您不必下載 Ant,因為其功能 與 Eclipse 打包在一起。本教程使用 Ganymede Package for the Eclipse IDE for Java EE Developers。

設置開發環境

安裝 Java SE 6

下載並安裝最新的 Java SE 6 JDK。Java SE 6 具有許多新功能,包括 Web Services API。

雙擊可執行文件並按照安裝說明進行操作。建議您執行典 型安裝並保留所有缺省設置,例如位置。

當系統詢問時,請選擇您是否希 望將該 Java 運行時環境安裝為系統 JVM,以及是否希望將任何浏覽器與該 Java 插件相關聯。

單擊 Finish 開始安裝。

關閉任何打開的浏覽器窗 口。

完成安裝後,您應該看到一條確認安裝成功的感謝消息。單擊 OK 關 閉該消息。

注意:將 Java Runtime Environment (JRE) 安裝為系統 Java 虛擬機(Java Virtual Machine,JVM)意味著它將取代在 Microsoft® Windows® 目錄中找到的任何 JVM,或在未從該目錄找到 JVM 的情況下復制 新的副本。將任何浏覽器與 Java 插件關聯意味著將這個新的 Java 版本用於 Applet。

安裝 Eclipse

Eclipse 是一個開放源代碼、可擴展的開 發平台,可以在幾乎所有的操作系統上進行安裝。

安裝 Eclipse 是相當簡單的,因為不存在安裝過程:

下載 Eclipse IDE for Java EE Developers。

將文件提取到計算機上的所需位置。然後您應該看到一個名為 eclipse 的文 件夾。為方便起見,最好在桌面上創建 eclipse.exe 文件的快捷方式。

配置 Eclipse

第一次運行 Eclipse 時,將會顯示歡迎頁面,如圖 1 所示。如果不想閱讀概 述和其他產品信息,只需關閉該頁面,以後可以通過選擇 Help > Welcome 返 回到該頁面。

圖 1. 歡迎屏幕

配置 Eclipse 以使用您先前安裝的 Java SE 6 JDK;您需要將項目與此版本 的 Java 相關聯:

選擇 Window > Preferences > Java > Installed JREs,然後單擊 Add 按鈕。

輸入名稱,例如 Java SE 6,以便於識別其版本。

單擊 Browse 按鈕,並定位到安裝 JRE 60 的目錄。

單擊 OK(請參見圖 2)。

圖 2. 添加新的 JRE

新的 JRE 現在應該出現在已安裝的 JRE 列表中,如圖 3 所示。

選中 Java SE 6 復選框,然後單擊 OK。

圖 3. 選擇新的 JRE

若要設置對所安裝的 Java 版本的遵從性,請選擇 Window > Preferences > Java > Compiler。

從 Compiler compliance level 下拉列表中選擇 1.6,如圖 4 所示。

圖 4. 設置遵從性

創建項目

下一步,您將創建一個項目來構造 Web Services 服務端。項目包含源代碼和其他相關文件,並允許您使用項目作為源文 件的容器,或在項目中設置文件夾以對文件進行組織。

選擇 File > New > Project。

展開 Java 文件夾並單擊 Java Project(請參見圖 5)。

圖 5. 在 Eclipse 中創建項目

單擊 Next。

在看到提示時輸入項目名稱,例如 wsServerExample,如圖 6 所示。

圖 6. 在 Eclipse 中輸入項目詳細信 息

如果先前已缺省選擇了 Use default JRE 單選按鈕,則 選擇此單選按鈕;否則請選擇 Use a project specific JRE 單選按鈕,並確保 該 JRE 為 Java SE 6。

單擊 Finish 將項目與您先前安裝的 Java JDK 相關聯。

如果提示您切換 Java 透視圖,請單擊 Yes。

創建服務 器

首先需要創建一個 Java 包來容納您的 Java 類:

選擇 File > New > Package。

當 New Java Package 窗口打開時,輸入包名 稱,例如 com.myfirst.wsServer,如圖 7 所示。

圖 7. 創建包

下一步,您需要為服務器代碼創建一個類:

右鍵 單擊您剛才創建的包名稱,然後選擇 New > Class。按如圖 8 所示對其進行 配置。

圖 8. 創建類

將該類創建為沒有 main 方法存根的 public 類。

現在您已經為該包提供了一個類,下面可以開始編寫服務器的代碼了,如清單 1 所示。

清單 1. 服務器代碼

package com.myfirst.wsServer;

import Javax.jws.WebService;

@WebService

public class SayHello {

  private static final String SALUTATION =  "Hello";

  public String getGreeting( String name ) {
  return SALUTATION + " " + name;
  }
}

請注意清單 1 中粗體顯示的代碼。這稱為 Annotation 或元數據,由 Java SE 5 中引入的 Web Services 元數據規范 (Web Services Metadata Specification) 所使用。開發人員在對類和方法應用 Annotation 之前定義類和 方法,以向運行時引擎指明如何將類及其方法作為 Web Services 和 Web Services 操作來啟用。Java SE 6 附帶了這樣一個引擎。

@WebService Annotation 將 SayHello 類標記為實現某個 Web Services , 從而產生可部署的 Web Services 。這個特定的 Annotation 是一個 WSDL 映射 Annotation,並將 Java 源代碼與表示 Web Services 的 WSDL 元素相關聯。

使用 Ant 生成服務器代碼

編寫服務器應用程序以後,您需要生成支持 Web Services 的代碼。首先,創 建一個名為 build.xml 的新 Ant 文件:

右鍵單擊該項目,並選擇 New > File。

在得到提示時輸入名稱 build.xml,然後單擊 Finish(請參見圖 9)。

確保通過右鍵單擊此文件並選擇 Open With > Ant Editor,從而使用 Ant Editor 打開此文件。從現在開始,每當您雙擊此文件,都會使用 Ant Editor 將 其打開。

圖 9. 創建 Ant 文件

輸入如清單 2 所示的 Ant 項目。

清單 2. Ant 腳本

<project default="wsgen">

  <target name="wsgen" >

  <exec executable="wsgen">

   <arg line="-cp ./bin -keep -s ./src -d ./bin  com.myfirst.wsServer.SayHello"/>

  </exec>

  </target>

</project>

若要運行該 Ant build.xml 文件,請右鍵單擊 Run As 並選擇 Ant Build, 這將會執行該 Ant 文件。

確保此操作在 Eclipse 控制台窗口中產生 BUILD SUCCESSFUL 消息,如圖 10 所示。

圖 10. Ant 構建成功

返回到 Eclipse 項目,通過右鍵單擊 wsServerExample 並選擇 Refresh 來 刷新該項目。您現在應該在名為 com.myfirst.wsServer.jaxws 的包下面看到生 成用於運行所創建的 Web Services 的代碼(請參見圖 11)。

圖 11. 生成的代碼

發布 Web Services

在為 Web Services 的服務器生成代碼以後,您需要發布該 Web Services 以 便能夠開始使用它:

在您創建的 com.myfirst.wsServer 包下面創建一個新類,並將其命名為類似 於 RunService 的名稱。

右鍵單擊該包並選擇 New > Class,但這次選擇用於創建 main 方法存根 的選項。

編寫發布 Web Services 的代碼,如清單 3 所示。

清單 3. 發布代碼

package com.myfirst.wsServer;

import Javax.xml.ws.Endpoint;

public class RunService {

  /**
  * @param args
  */

  public static void main(String[] args) {

  System.out.println("SayHello Web Service started.");
  Endpoint.publish("http://localhost:8080/wsServerExample", new  SayHello());

  }
}

Java SE 6 為發布 Web Services 提供了新的支持。Endpoint API 簡單地發 布 Web Services 端點,後者在運行時在某個 URL 處生成 WSDL。

通過右鍵單擊此類並選擇 Run As > Java Application,從而運行此類。 Eclipse IDE 控制台窗口應該顯示出來。如果未顯示,請選擇 Window > Show View > Console。您應該看到 Web 服務器已啟動的指示,如圖 12 所示。

圖 12. 正在運行服務的控制台

查看 WSDL

現在服務器已經啟動並運行,您應該對其進行測試以確保它按預期工作:

通過選擇 Window > Show View > Other > General > Internal Web Browser 打開 Eclipse 中的內部 Web 浏覽器。

輸入 URL,例如 http://localhost:8080/wsServerExample?wsdl,這應該會 顯示該 Web Services 的 WSDL 文本,如圖 13 所示。

圖 13. 顯示內部 Web 浏覽器的控制台

完成後,記住通過單擊 Eclipse 控制台視圖中的紅色方框停止該 Web Services 。然而,為了繼續本教程後面的操作,應該保持服務處於運行狀態。

測試服務器

下一步,您將使用 Eclipse Web Services Explorer 工具,並通過本機 WSDL 和 SOAP 調用 Web Services 的操作,以測試您剛才創建的 Web Services 的 getGreeting 方法。

您可能需要切換到 Java EE 透視圖。單擊 Window > Open Perspective > Other。

當窗口顯示出來時,選擇 Java EE。

選擇 Run > Launch the Web Services Explorer。通過雙擊其選項卡最大 化視圖。您應該看到如圖 14 所示的屏幕。

圖 14. Web Services Explorer

單擊紅色圓圈所指示的圖標。這將顯示 WSDL 頁面,如圖 15 所示。

圖 15. WSDL 頁面

在 Navigator 窗格中,單擊 WSDL Main。Actions 窗格已更新,如圖 16 所 示。

輸入 WSDL URL,在此例中為 http://localhost:8081/wsServerExample?wsdl ,然後單擊 Go 按鈕。

圖 16. 輸入 WSDL URL

WSDL 應該成功地打開,並且您應該看到類似如圖 17 所示的屏幕。

圖 17. 成功打開的 WSDL

下一步,您將通過單擊 Operations 下面的 getGreeting 調用一個操作(如 圖 17 所示)。這將產生與圖 18 所示類似的屏幕。

圖 18. 調用操作

在 Body 部分的 getGreeting 下面,單擊 Add 鏈接(如圖 18 所示)向值表 中添加一個新行。

輸入名稱(這裡為 Fiona),然後單擊 Go 按鈕。

在 Status 部分,getGreetingResponse 顯示了結果。您應該在 Status 部分 看到類似於 return (string): Hello Fiona 的結果(請參見圖 19)。可能需要 滾動或拖動視圖才能看到結果。

圖 19. 操作結果

總結

創建、生成和發布 Web Services 是非常簡單的,只需使用 Eclipse 即可, 當然還要使用 Java SE 6。請繼續閱讀本系列教程的第 2 部分,您將在其中構建 獨立客戶端以便與這個獨立 Web Services 服務端一起使用。

附錄:Web Services 術語和首字母縮寫詞簡要概述

Web Services

根據 W3C 的定義,Web Services 是“旨在支持通過網絡進行的可互操作計算 機到計算機交互的軟件系統”。換句話說,Web Services 是用於應用程序到應用 程序通信的編程接口。通常,它們用作支持計算機之間通過網絡(例如 Internet )進行通信的 Web 應用程序。

客戶端和服務器使用遵循 SOAP 標准的 XML 消息進行通信。也就是說,Web Services 使用 XML 對數據進行編碼和解碼,並使用 SOAP 來通過開放協議傳輸 數據。Web Services 平台的其中兩個基本要素為 SOAP 和 WSDL。

XML

可擴展標記語言(Extensible Markup Language,XML)允許用戶定義他們自 己的元素。它是一種通用規范,可以促進結構化數據在不同信息系統之間的共享 (通常通過網絡)。XML 旨在攜帶信息而不是顯示信息。換句話說,XML 除了對 信息進行組織、存儲和傳輸以外,並不實際做其他任何工作;它只是純文本。

SOAP

SOAP 過去代表簡單對象訪問協議 (Simple Object Access Protocol),但是 在 1.2 版中已經丟棄了這個概念,因為此概念太具有誤導性了。它是一種輕量級 的通信協議,允許應用程序使用 XML 通過網絡交換信息,或者更簡單地說就是用 於訪問 Web Services 的協議。SOAP 允許應用程序彼此通信,而不管它們運行在 什麼操作系統上,以及是使用什麼編程語言編寫的。

WSDL

WSDL 是應用程序可讀的 Web Services 描述語言。它用於描述 Web Services 的功能,以及客戶端應用程序應該如何調用 Web Services 。也就是說,它在 XML 文檔中描述 Web Services 的所有方法及其簽名、命名空間,以及統一資源 標識符(Uniform Resource Identifier,URI)的處理。URI 指定網絡上的某個 資源。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved