程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java端RESTful web services的幾種實現方式

java端RESTful web services的幾種實現方式

編輯:關於JAVA

1) 利用JAX-WS的Dispatch/Provider對

在JAX-WS中,我們可以跳過SOAP棧的處理,直接調用Service Endpoint,這樣我們就可以傳輸POX(Raw xml)或者JSON給Service Endpoint處理,並可以通過MessageContext拿到HTTP method,從而進行判斷,調用不同的邏輯。需要注意的是將Endpoint的@WebService替換成@WebServiceProvider,需要實現Provider<Source>接口。接著將BindingType改為(value = HTTPBinding.HTTP_BINDING) ,表明直接處理的是HTTP,而不是SOAP。

Dispatch和Provider分別對應於客戶端和服務端,他們當然是可以脫離使用的。

Provider脫離Dispatch

Get和Delete不需要通過HTTP body,本身就支持任意client

通過HTTP Header傳post和put的內容,支持任意client

通過HTTP body傳Post和Put的內容,需要模擬Dispatch傳的HTTP body格式

Dispatch脫離Provider

自己生成SOAP包,服務端可以是SOAP-based web service

2) RESTful HTTPServlets

所謂萬變不離其中,REST本身就是HTTP的架構,我們可以直接通過HTTP servlet操控HTTP Request和Response,而且HTTP servlet本身就提供了doGet doPost doPut doDelete doHeader, doOptions方法,通過重寫這些方法,我們可以實現基於HTTP servlet的RESTful web services

3) JAX-RS

JAX-RS(JSR 311,Java API for XML-RESTful Web Services)是基於annotation的實現方式,我們通過annotation的方式把一個java class標注成RESTful web service,並把它的方法標注成HTTP的CRUD。相關的annotation有@path, @Produces,@GET, @POST, @DELETE, @PUT, @PathParam等,

目前已經有很多現成的實現,比如Jersey, Apache CXF, JBoss RESTEasy, Apache Wink.  Triaxrs等

4) 其他的一些framework

還有一些其他的第三方的framework,可以方便我們發布RESTful web services,編寫web client,比如Restlet

5) Container支持

有些Container也提供了一些Utility工具,可以將Java Class發布成RESTful web services。不過OC4J1013的那個太假了,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved