2013-09-01
Tags:
jax-rs
,
jersey
,
程式語言
,
java
這陣子因為工作上的需求,想把一些舊 code 改用
JAX-RS 寫法,藉以減輕舊 code 複雜度。不過...評估後發現似乎沒簡化多少,只好直接放棄。雖然如此,但在研究 JAX-RS 的過程中有不少收獲,所以把它記錄下來,以備未來不時之需。
JAX-RS 是什麼玩意兒,可參考這份slide,看完後會有完整概念
JAX-RS 的實作有蠻多家的可以選的,我的選擇是
Jersey,選它的原因是我認識的眾
大濕
大師都對它有好評,所以就決定是它了...XD
Restful 的應用目前我知道可以區分成二種
- Restful Web Service
- Restful Web Application
這二者的差異其實也只在於後者把 Restful URI 應用到 web application 而已,單純是應用上的不同,技術上其實是一致的。
Jersey 快速上手文件,可以參考下面這儿份,看完後就有辦法寫出 Restful Web Service
如果是想用 Jersey 寫出 Restful Web Application 的話,則是參考下面這份文件。
在找 Jersey 資料的當時,也有想到如果用 Spring,它是怎麼實 作Restful。當時找到的文件是這份,有興趣的可以參考一下。
在官方文件方面,Jersey 分成 1.x 跟 2.x 的文件,請挑自己需要的版本來看。如果要用 Jersey 做深入應用,這些文件最好還是乖乖看一看。
最後,在這邊提一下使用 Jersey 要注意的儿個地方
- 要注意 Jersey 回傳資料的型別,如果回傳值是 int,可能會遇到些問題。Stackoverflow 有相關討論,可以去看看前人的解法。
- Jersey 有 1.x 跟 2.x 的版本, 二個版本在一般使用上差異不大,可是 2.x 的版本最低要求是 "Java 6 + Servlet 2.5",如果你的 Servlet container 太舊的話,建議用 1.x 的版本就好。如果沒特別的需求,其實用 1.x 的版本就已經足夠,而且白老鼠夠多,該踩的地雷大概也都被踩完了。
- Jersey 1.x 跟 2.x 在 API 的變動之處,可參考官方文件。我大略看了下,Server API 的變動對只簡單使用 Jersey 的人影響應該不大,但是 Client API 變動的影響就大了,有用的人要去注意新舊版的差異。