java端RESTful web services的几种实现方式

60 篇文章 0 订阅

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的那个太假了,

 

原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-161105-1.html

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值