天天看點

與Java Web Service相關的若幹概念(JAX-WS,JAX-RS)

======================================================

注:本文源代碼點此下載下傳

======================================================

本篇關鍵詞:

jws ,jax-ws ,jax-rs,rest,restlet,soap

這一段時間從.net轉戰java了。表示對java的一套相當不熟悉。新手,必須是新手。作為新手,我感到壓力很大。

面對開發環境中的若幹包,若幹插件,若幹技術。隻寫過java 控制台裡邊的helloword,學習過java基本語言的我,感到很有挑戰性。。。

轉入正題,今天要說說與java webservice 相關的一些列概念。因為我個人在探索過程中被這些五花八門的新名詞搞的很暈,找不到各個概念之間的聯系,想要做一個解決方案的選擇,令我糾結若幹天。

以前的時候,對.net的webservice有所了解,是以對于了解javawebservice 難度就不大。

ljws: 是指與webservice相關的j2ee(其實作在應該叫做java ee吧)技術叫做 jws(全稱就是 java webservice)。沒錯,jws指的就是 javawebservice

ljws含有的技術

1.jax-ws

2.jax-rs

3.jaxb

4.jaxr

5.saaj

6.stax

諸多技術,不是都要弄明白,再說,對于我來說,也不是要攻java的,至少目前不是。

關于jax-ws 與jax-rs

簡要說一下 jax-ws 和jax-rs

jax-ws全稱是javatm api forxml-based web services

jax-rs :全稱是javatm api forrestful web services

而jaxb是java xml binding,是jax-rs jax-ws底層使用的對象與xml之間轉換的工具

網上說關于jax-ws與jax-rs有這麼說的: 兩者是不同風格的soa架構。前者以動詞為中心,指定的是每次執行函數。而後者以名詞為中心,每次執行的時候指的是資源。

感覺這個說法比較靠譜,jax-ws是面向消息的,每次請求的時候指定了請求的方法。jax-rs是面向資源的。後則将網絡上的東西當做一種資源,每次請求都是對該資源進行操作,比如對資源的增删查改。

在網上看到這麼一句話:java 中共有三種webservice 規範,分别是jaxm&saaj、jax-ws(jax-rpc)、jax-rs。我暫時不清楚他們能不能叫做webservice服務規範,而且這個服務規範是什麼意思?

jax-ws規範是一組xml web services的javaapi,這樣會不會好了解一點?規範和api什麼關系啊。。。。為什麼規範是java api (請原諒我這麼咬文嚼字。。。)

我的了解就是他們隻是內建在java平台裡邊的api,這個api是用來實作不同風格的jws的。人們把這一套api叫做web服務規範。因為他們的設計目标不一樣,前者jws-ws為實作基于soap協定的web service提供的api,soap協定比較強大。而後者jws-rs是為基于rest設計風格的webservcice提供的api。

關于rest這麼說,它是一種架構,而不是一種标準。目前我對他得了解還不夠深刻,暫不做深述。

然後我們再結合一部分架構,就能夠很輕松(至少架構的目的是這樣)的實作web service。

支援jax-ws服務規範的架構有:cxf,axis,xfile

cxf、axis2、xfire 結合java語言均可可實作jax-ws(我了解不了這句話是什麼意思,為什麼是實作jax-ws。。是應該指的是那種基于soap協定的,webservice吧)

支援jax-rs服務規範的架構有:

cxf——xfire和celtix的合并(一個由iona贊助的開源esb,最初寄存在objectweb上)。

jersey——sun公司的jax-rs參考實作。

resteasy——jboss的jax-rs項目。

restlet——也許是最早的rest架構了,它jax-rs之前就有了。 http://www.restlet.org/downloads/stable

我想,意思是這些架構結合jax-ws能夠實作ret風格的webservice吧,因為jax-ws不是指的是api麼?上述說法令人費解。。

好吧嗎,我們就假定認為結合這些架構在結合java平台提供的一些api我們就能夠分别實作 soap協定風格的webservice,或者實作 rest風格的web service。

暫時寫到這裡,我真的辨別仍然對上述的一些列概念之間的關系理不順,希望明白的朋友指點一下迷津,thankyou!!

======================================================

在最後,我邀請大家參加新浪APP,就是新浪免費送大家的一個空間,支援PHP+MySql,免費二級域名,免費域名綁定 這個是我邀請的位址,您通過這個連結注冊即為我的好友,并獲贈雲豆500個,價值5元哦!短網址是http://t.cn/SXOiLh我建立的小站每天訪客已經達到2000+了,每天挂廣告賺50+元哦,呵呵,飯錢不愁了,\(^o^)/