![](/img/trans.png)
[英]Distributed Application Environment and Web Services - What/How to learn?
[英]What to learn to do Java web services?
我最后一次使用Java Servlets和JSP進行Java Web開發。 我從未真正使用過EJB。 我記得我在開發Web服務\\動態網站方面的經驗,這些網站的速度很慢(在開發時間方面)和痛苦(在易於部署方面)。
如今大多數企業使用什么來開發基於Java的網站? 您是否使用AXIS或其他框架來進行Web服務? 您是否使用JSP或其他技術作為前端?
當前的標准是使用JAX-WS(用於SOAP Web服務)和JAX-RS(用於RESTful Web服務)。
這些是具有多個實現的標准。 JAX-WS有Metro,CXF等.JAX-RS有Jersey,RESTEasy等。
我會按順序學習這些
從2004年開始,工具支持以及易於開發也已經走過了漫長的道路。隨着對輕量級框架的關注越來越多(部分歸功於Spring),在Java中實現Web服務變得更加容易。
在決定實施Web服務之前,您需要回答一個簡單的問題。 肥皂或REST.I建議你形成自己的觀點,但這是我能想到的,在我的頭頂。
SOAP的優點:
肥皂的缺點。 (問羅伊菲爾丁......)
在臃腫的Web服務協議羅伊Fieldings咆哮后, web服務 ,他長出了常識的說法使用互聯網的SOA的背部骨,有對REST一個平緩的動作。 谷歌和亞馬遜等更敏捷的公司采用了REST,並且正在支持基於REST的Web服務。
REST的優點:
REST的缺點:
我喜歡澤西島的REST。 它具有驚人的框架,出色的支持,出色的文檔,良好的測試支持庫。
無論哪種方式,我都會下載Netbeans IDE並使用它來開發基於REST或SOAP的Web服務的骨架代碼。 Netbeans讓它很容易上手。 一旦熟悉了代碼,就可以切換到自己喜歡的IDE。 (順便說一句,除了原型設計之外我不會使用Netbeans,它會嘗試做很多事情並且大部分都做得很糟糕......無論如何我的意見)
我的偏好是Apache Avro(在@ rodrigoap的回答中提到)。 我現在工作的地方,我們有一個面向服務的架構,並使用Avro進行內部服務。 我們之所以選擇它,是因為它快速,穩定,可以運行http(很容易通過Tomcat服務),可以自動生成客戶端類,並可以使用多種語言。 客戶端類的生成對我們來說是一個很大的特性,因為它意味着我們只處理Java對象並讓Avro處理序列化並通過網絡發送內容。 不必處理許多不同的網址也很好。 Avro Web服務由單個servlet托管,Avro負責如何將每個請求映射到實現類中的相應方法。
為了再次參考@ rodrigoap的答案,他在Avro的列表中放置了其他幾個選項,對於外部訪問的Web服務,我同意這些是更好的選擇,因為您的外部服務用戶可能對使用不感興趣Avro只是因為你可能已經選擇了它。
如果您對一個示例感興趣,這里有一個示例Avro Web服務項目,可以查看它是如何工作的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.