這一段時間從.NET轉戰java瞭。表示對java的一套相當不熟悉。新手,必須是新手。作為新手,我感到壓力很大。
面對開發環境中的若幹包,若幹插件,若幹技術。隻寫過Java 控制臺裡邊的HelloWord,學習過Java基本語言的我,感到很有挑戰性。。。
轉入正題,今天要說說與Java Web Service 相關的一些列概念。因為我個人在探索過程中被這些五花八門的新名詞搞的很暈,找不到各個概念之間的聯系,想要做一個解決方案的選擇,令我糾結若幹天。
以前的時候,對.NET的webservice有所瞭解,所以對於理解java webservice 難度就不大。
l JWS: 是指與webservice相關的J2EE(其實現在應該叫做Java EE吧)技術叫做 JWS(全稱就是 java webservice)。沒錯,jws指的就是 javawebservice
l Jws含有的技術
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 for XML-Based Web Services
JAX-RS :全稱是 JavaTM API for RESTful 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的JAVA API,這樣會不會好理解一點?規范和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之前就有瞭。
我想,意思是這些框架結合JAX-WS能夠實現RET風格的webservice吧,因為JAX-WS不是指的是API麼?上述說法令人費解。。
好吧嗎,我們就假定認為結合這些框架在結合java平臺提供的一些API我們就能夠分別實現 soap協議風格的webservice,或者實現 REST風格的Web Service。
暫時寫到這裡,我真的標識仍然對上述的一些列概念之間的關系理不順,希望明白的朋友指點一下迷津,ThankYou!!
作者 “HDDevTeam”