Benx Blog

八月 1, 2006

Java web service 初研究

Filed under: Uncategorized — benxshen @ 12:00 下午

什麼是 Web Serivce?

先來看一下文字描述的定義:

「A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.」 — W3C – Web Services Archirecture

接著,看了這張圖將會對 Web Serivce 的服務架構更為明瞭。
The General Process of Engaging a Web        Service

Java Web Serivce

在 Java 的語言領域當中,目前我所能夠知道的是 Apache Axis2 (http://ws.apache.org/axis2/index.html), 以及 Codehaus XFire (http://xfire.codehaus.org/)。

針對這兩套 Java web services 工具,我都下載回來試了一下。

XFire 所提供的 example 並沒有如預期地跑起來,因為他所提供的 maven 配置和 repository 中現有的 jar 檔案可能有些版本上的出入,以致於我無法完成建置工作 (build)。這個套件比較吸引我的地方在於 Appfuse 已經整合了 XFire;另外,MyEclipse 也提供了 XFire 的開發介面與工具。

跑起 Axis2 就相對簡單許多。首先, joeyta’s Apache Axis2 備忘記這篇 blog 文章幫了不少的忙。而且, Axis2 提供了一個簡易的 web serivce 環境,讓開發者便於快速部屬與測試。此外,我也發現到 Eclipse WTP 1.5 的版本有提供幾個開發 Axis2的工具(我並不知道更早的 WTP 是否就已經有此特性了),所以,我也就利用了 Eclipse 所提供的工具,將 wsdl 的定義產生成為 java 的 stub 程式,讓 client 端可以叫用 web service.

(TODO: 補上 Eclipse WTP 1.5 利用 Web Service Wizard 所產生的 client 端程式碼,並且附上一個簡易的 main 測試。最後測試的方式,和 joeyta 有點不一樣。他所使用的工具是 Axis2 的 wsdl2java,但是產出的程式碼和 Eclipse 並不一樣。關於這一點,可以再仔細看一下。不過,這兩種方式當然都是可行的!)

結論

由於見識的 Java web service 套件並不多,而且也不夠深入,因此沒有辦法評判這兩套工具各自的優劣。不過,我總是以能夠輕易地執行第一支程式做為評判的標準,這讓我覺得很有成就感,也自信能夠繼續往一下步發展,所以我會傾向選用 Axis2 做為 Java web serivce 工具。另外,由於 Axis2 是 Apache 的專案,因此在質量上有相當的穩定度,在文件的參考方面,也有較為豐富的資源可供參考利用。

powered by performancing firefox

發表迴響 »

仍無迴響。

RSS feed for comments on this post. TrackBack URI

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: