[Develop]Java Web Service

[Develop]Java Web Service

JavaWS

前面的章節我們曾經說過,Web Service 是 一個SOA架構的實踐。Web Service 架構在 XML、SOAP、WDSL…等協定上。既然是一個標準,那他就不僅僅只是
.Net 的專利囉。這個章節我們要來

介紹如何將自己開發的 Java 程式變成一個標準的 Web Service。這有什麼好處呢 ? 試想,當你的程式變成了Web
Service時。那麼就可以非常簡單輕鬆的被 .Net、Workflow Foundation、

BizTalk、SSIS…等應用程式呼叫,這樣你也不用去管那隻 Java到底是怎麼寫的,只要知道你需要給他什麼值;並且他還你什麼就好。簡單說就是
Input & OutPut。


前置準備。

在看到這一章節時,我先假設你已經會寫 Java的程式了。所以在要建立能執行 Java Web Services 的環境前,我們必須先下載幾項必要的套件。,。,。,。,。,。

1 、 下載 TomCat 套件,這邊我下載的版本是 apache-tomcat-5.5.27.exe 。

2 、 下載 Axis 套件,這邊我下載的版本是 axis-src-1_4 。

3 、 下載 activation.jar、mail.jar、tools.jar、xmlsec.jar 四個 jar 檔案。

4 、 下載 Java 應用程式執行環境套件,這裡我下載的版本是 jre1.5.0。


安裝
Apache-tomcat。

在Windows 下安裝 Tomcat 是很幸福的,點了兩下執行檔,然後只要做簡單的設定就可以下一步、下一步裝到好。之後也會介紹在 Linux上的安裝部署方式。,。

clip_image001

來到了歡迎安裝 TomCat 的畫面,當然就是繼續下一步了。

clip_image002

繼續下一步吧!!!

clip_image003

在這邊我們只要裝上預設的元件就可以了,其它部份暫時不多做介紹,因為TomCat並不是我們的重點 ><|||。

clip_image004

這邊是TomCat安裝在我們伺服器中的預設位置,我們也不改變他。

clip_image005

預設 TomCat 會用掉 8080 Port,這裡我們也不改變他。在下面管理者密碼的部份,依你的習慣輸入你的密碼吧。

clip_image006

這個部份要去選擇你安裝在你電腦中的Java 執行環境,你的環境路徑不一定和我的一樣,所以要選擇你當初安裝 Java套件的環境。然後按下一步後開始安裝。

clip_image007

安裝完成了,YA~YA~YA。有沒有很簡單 ??? 好喜歡寫這章節,字好少喔~哈哈哈哈。

clip_image008

接著我們在IE瀏覽器上打上 [ http://127.0.0.1:8080 ] 或是打上 [ http://localhost:8080
] 都可以看到 Tomcat 網頁的首頁。

clip_image009


安裝 Axis 套件

接著我們要來安裝 Axis 套件,這個套件是負責將 Java的程式碼發佈成 Web Service;並且會根據我們的程式內容幫我們自動編成
WSDL的訊息。

這樣你就可以利用 .Net 或是 Biztalk 任何支援叫用 Web Service 的應用程式來參照 WSDL檔案來使用這個Web Service。

clip_image010

我們將下載的 Axis 壓縮檔解開,將 [ Axis資料夾 ] 下的 [ Webapps ]下的 [ Axis資料夾 ] 整個複製到 [
Tomcat 資料夾] 下的 [ webapps\ROOT ]。

clip_image011

clip_image012

接著把 [axis 資料夾] 下的 [ WEB-INF\lib ] 裡面所有的 Jar 檔案複製起來 放到 [ Tomcat 資料夾 ]
下的 [ common\lib ]。

clip_image013

接著把下載到的四個 jar檔案也放到 [ Tomcat 資料夾 ] 下的 [ common\lib ]。

clip_image014

這邊我們接著打開 [ Tomcat 5.5\conf\server.xml ] 檔案,在 [ </Host> ] 元素之前加入

[ <Context path="/axis" docBase="C:\Program Files\Apache
Software Foundation\Tomcat 5.5\webapps\ROOT\axis" debug="0"
reloadable="true" ></Context>]。

其中[ docBase="" ] 這裡要輸入你 [ axis ] 資料夾的路徑。( 你也可以先在Windows 裡面設定好環境變數,這樣就不用輸入一大長串了。不過這邊我就懶得寫環境變數的設定法了
!! ><||| )

clip_image015

接著我們重新啟動 TomCat的服務,然後輸入下列網址 [ http://localhost:8080/axis/ ]。看到以下的畫面就代表你部署的
Axis 套件 Work 了。

clip_image016


撰寫Java程式!

我們來撰寫一隻簡單的Java程式。不免俗,他還是一隻 HelloWorld。我們撰寫一隻 [ FirstJWS ]的類別,裡面只有一個方法
[ HelloWorld ]。這個方法會接受一個字串 並且也回傳一個字串。

clip_image017

我們將寫好的程式儲存成副檔名為 [ FirstJWS.jws ] 的檔案,儲存位置在 [ Tomcat 資料夾 ] 下的 [ Webapps\Root\axis
]。在網頁呼叫到這支程式時,Tomcat 會幫我們將這支程式發佈成一隻 Web

Service。但是這種叫用法是叫用時才編譯程式,因次比較浪費系統資源,在之後的章節我們會介紹先行編譯的發布方式。

clip_image018


測試結果 !

打開IE瀏覽器,我們在網址列輸入 [ http://localhost:8080/axis/FirstJWS.jws ]。這時會看到一行字告訴我們
[ There is Web Service here ],並且下面有一行超連結。

[ Click to see the WSDL ] ,這是很重要的部份。WSDL是描述這個Web Service 的結構,簡單說就是給其他應用程式看的。當我們按下超連結後,會來到一個網頁

[ http://localhost:8080/axis/FirstJWS.jws?wsdl ]。這個網頁的描述內容乍看很複雜,不過不用擔心,這個網頁不是我們要看的。假如你在.Net要叫用這個服務,只要在[
加入Web參考 ]的時候,

輸入這個網址,就可以使用這隻Java的服務了。這就是SOA架構的魅力所在,將要做的工作給適當的人執行。

clip_image019

clip_image020

接著我們在網址列上輸入[ http://localhost:8080/axis/FirstJWS.jws?method=Helloworld&name=ben
] 來叫用這個位址所提供的 [ HelloWorld ]服務。在name參數的部分我們輸入自己的名子。

然後你會看到一份XML檔案,其中在 [ HelloReturn ]元素中間我們看到值 Hello Ben。這就是由 Java 完成的程式結果,並且回傳給我們。這樣是不是很簡單阿
?

clip_image021