使用RESTlet框架开发符合JSR311规范标准的REST Web Service

JSR311 作为 Java 实现 REST Web Service 的规范标准,尽管从出生起就备受争议,但从事实上,已 经普遍被大多数 REST 实现框架的接受。这中间,既有 Sun 公司原产的 Jersey, 也有其他的开源项目, 如 Jboss 的 RESTEasy, Apache 的 CXF 等。当然,还有发展时间最长,相当成熟的 RESTlet 框架。

RESTlet 的主体核心是按照 Roy Thomas Fielding 的著作"Architectural Styles and the Design of Network-based Software Architectures"。结构清晰,稳定性强。但是该框架下的资源定义是有别于 JSR311 的那种 JAX-WS 风格的 annotation。这对于钟爱 RESTlet 的 Web Service 开发人员,就面临着 选择阵营的风险。所幸的是,RESTlet 的领导开发人员 J é rome Louve 也是 JSR311 的参与者 , 这反 映在 RESTlet 1.1 提供了一个 Extension 来帮助 RESTlet 的开发人员编写符合 JSR311 的 Web Service。某些企业级产品,如 IBM Systems Director 6.1.2, 已经在产品中使用这种技术。本文重点介 绍 JAX-RS extension 的基本实现结构以及如何利用该插件进行 JSR311 规范标准的 REST Service。

本文以 Neolies RESTlet 1.1.8 作为讨论的基础,并且假定读者已经对 REST,JAX-RS 以及 RESTlet 有一定的理解。因此不会详细讨论相关的基本知识,读者也可以通过阅读"构建 RESTful Web 服务"来获 取这方面的相关知识。

RESTlet 和 JSR-311

JAX-RS Annotation 简介

@Path: 用来映射 URI,为资源类以及资源类中包含的方法提供访问路径。

@GET: 表示处理 HTTP GET 请求的资源类方法。当 Web Service 获得客户端发出的对与某个网络资源 的 HTTP GET 操作时,服务器会调用被 @GET 注解后的方法来处理 GET 请求。当然,被调用的资源类方 法首先得满足 URI。

@POST: 表示处理 HTTP POST 请求的资源类方法。和 @GET 相类似,只不过对应的是 HTTP POST 操作 。

@PUT: 表示处理 HTTP PUT 请求的资源类方法。该 Annotation 通常用于更新网络对象的方法。和 @GET,@POST 处理流程相类似。

@DELETE: 表示处理 HTTP DELETE 请求的资源类方法。使用该 Annotation 后的方法通常是删去每个 网络对象的实例。处理流程和 @GET,@POST,@PUT 相类似。

@HEAD: 表示处理 HTTP HEAD 请求的资源类方法。通常情况下,根据 JAX-RS 规范的设定,在没有实 现 @HEAD 的资源类方法时,RESTlet JAX-RS extension 会自动处理 HTTP HEAD 请求,@GET 注解的资源 类方法会自动被调用。和处理普通的 HTTP GET 请求的区别是没有实例被返回。@HEAD 注解的资源类方法 通常用来获取 Web Services 能够接受的数据格式。

@Produces: 用来表示资源类方法能够返回的 MIME 的媒体类型。

@Consumes: 用来表示资源类方法能够处理的 MIME 的媒体类型。

Neolies RESTlet 设计风格上尽量遵循 Roy Fielding 博士论文中所阐述的 REST 的目标。从实现层 面上,Neolies RESTlet 可以分为三个部分:

RESTlet API: 这个部分设计了 RESTlet 的框架,包括在经典 REST 结构中所包括的 Application, Component,Route,Connector,VirtualHost, Resource 等,都在这个部分被详细定义。

NRE(Noelios Restlet Engine):这个部分是对 RESTlet API 的参考实现,RESTlet API 通过代理模 式 (Delegation) 将具体的工作转交到 NRE 中执行,如 RESTlet API 中的 Application 在 NRE 中的代 理就是 ApplicationHelper。

时间: 2024-10-08 09:07:17

使用RESTlet框架开发符合JSR311规范标准的REST Web Service的相关文章

Jersey : Java规范下REST风格Web Service开发框架

Sun正在致力于的建立RESt风格Web服务的规范,  规范如下  JSRs: Java Specification RequestsJSR 311: JAX-RS: The JavaTM API for RESTful Web Services链接:http://jcp.org/en/jsr/detail?id=311而同时该规范的参考实现Jersery也在逐渐成熟,目前已经是0.7版,大家可以参考https://jersey.dev.java.net/. 从JAX-RS规范和Jersey的发

Windows Phone开发(47):轻松调用Web Service

原文:Windows Phone开发(47):轻松调用Web Service 众所周知(除了没用过VS的),在VS里面调用Web Service是一件很愉快的事情,不解释,相信很多朋友在以前的项目中肯定也用过WEB服务.同样,在WP中调用Web Service也是非常简单的,你可以不信,反正我绝对信了.   有例子有真相,我们就以http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx 为例,这个Web服

WCF分布式开发必备知识(4):Web Service

今天继续我们的WCF分布式开发必备知识系列文章的第4节:Web Service.前3节我们分别介绍了MSMQ消息队列\.Net Remoting\Enterprise Services三个相关的技术.并且给详细注释的代码实现例子.先介绍一下本节的文章组织结构,首先还是介绍1.Web Service的基本概念2.优势和缺点3.使用Web Service的场合4.安全问题5.实现代码部分最后是总结.初学者就当入门资料,高手就当温习,也欢迎提出意见. 那现在我们就开始今天的学习,网上关于Web Ser

ejb-请问基于Java EE的构件规范设计开发构件,指的是使用EJB框架开发构件吗?

问题描述 请问基于Java EE的构件规范设计开发构件,指的是使用EJB框架开发构件吗? 我现在要完成的任务是开发一个可重用构件,这个构件要实现的功能是系统中一个数据处理模块.要求在Java EE 支撑平台下开发.我现在不太能理解这个构件的开发过程.查了资料得知javabean和ejb都可以用Java语言开发组件.javabean比较简单是一般和JSP配合的,开发比较小型的组件使用的.EJB更为复杂功能也全面,但是我的这个系统不是分布式的,也不需要与服务器进行交互.用EJB开发是不是有些不机智?

thinkPHP5.0框架开发规范简介

本文实例讲述了thinkPHP5.0框架开发规范.分享给大家供大家参考,具体如下: 命名规范 ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录不强制规范,驼峰及小写+下划线模式均支持: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致: 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写): 函数和类.属性命名 类的命名采用驼峰法,并且首字母大写,例如 User.UserType,

思博伦与博科携手展示符合3GPP规范的NB-IoT解决方案

全球领先的生命周期服务保障解决方案供应商思博伦通信已成功完成与博科开展的联合测试,并展示了符合3GPP规范的NB-IoT解决方案.这项联合测试使用了Brocade vC-SGN解决方案,其中包含S1-AP接口的3GPP NB-IoT增强特性,以及思博伦的Landslide解决方案,后者用于仿真NB-IoT设备.LTE基站和演进分组核心(EPC)功能.该测试演示了与3GPP NB-IoT标准的一致性.支持至少5万个LTE基站(eNB)物联网设备连接的能力,以及vC-SGN在多种负载下的自动扩展情况

自我检测网站是否符合seo规范

摘要: 做一个新网站,我们应当在正式提交给搜索引擎之前做一个自我检测.以免开放后经常修改,延误网站收录.一个网站制作得是否符号seo标准,同样也可以使用下面方法进行自我检测网 做一个新网站,我们应当在正式提交给搜索引擎之前做一个自我检测.以免开放后经常修改,延误网站收录.一个网站制作得是否符号seo标准,同样也可以使用下面方法进行自我检测网站是否符合seo规范. 一.网站keywords,description,<title></title>标签书写是否符合seo标准,这是一个网站

网络实名制入法 中央网信办正制定个人信息收集规范标准

中央网信办网络安全协调局局长赵泽良当日表示,新通过的网络安全法对网络运营者进行个人信息收集.存储.处理.使用和转让等各环节都作出明确规定,突出强调了信息收集者的责任,中央网信办正制定个人信息收集规范标准,将更好地保护个人信息. 11月7日,十二届全国人大常委会第二十四次会议表决通过的<中华人民共和国网络安全法>受到广泛关注,中央网信办11月11日对公众关注的热点话题进行了回应. 网络安全法规定,网络运营者为用户办理网络接入.域名注册服务,办理固定电话.移动电话等入网手续,或者为用户提供信息发布

有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取

本文讲的是有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取,[编者的话]Prerender 服务能够为网络爬虫提供预先渲染的动态页面内容,解决了用 JavaScript 框架构建的 Web 站点不支持爬虫抓取的问题.本文详细描述了一种解决方案,尤其是提供了集成 Prerender 服务的 Docker 容器镜像. 如果你正在使用 AngularJS 构建一个面向大众消费者的应用,你肯定希望用户能把它分享到社交媒体上.对于特定的应用而言,丰富的