阅读更多

5顶
1踩

编程语言
2007年二月,Sun发布了JSR 311:Java API for RESTful Web Services,前不久JSR 311草稿1.0 通过了JCP EC 投票批准,这意味着JSR 311已经是最终版本。

JAX-RS是一个基于annotation的API,用来实现RESTful web services,使用Java,基于HTTP。本质上,类和函数通过annotation信息作为一个资源暴露给运行时——而这种方式通过servlet编程模式很难实现。一个运行时能够处理HTTP协议和Java类之间的JAX-RS信息,使用URIs,请求和接受内容类型,和HTTP函数。Sun附加提供的参考实现:Jersey,其他实现也可以使用了(不同的平台有不同竞争者):比如 Restlet 框架,JBoss RESTeasy project,和 Apache CXF web services 解决方案。

Sun的Marc Hadley 和 Paul Sandoz 对于 JAX-RS和流程表达了看法:

问到对于这个结果有多高兴的时候,Marc说道他对于API最终通过非常满意。他甚至认为它是非常幸运的,在专家组讨论这个API的同时有很多实现框架在发展,这种方式的确缓解了很多争论。Paul补充到同时有很多开发者使用这个API,同时给予这些实现测试驱动,提供反馈等。

Paul对于JSR中的“J”给出了新颖的解答:

引用
也许这是怪异的,但是有时候我发现现在的Java语言语法面临了一些挑战。不管怎样,通过Java annotations 和常用的设计模式,我想我们能够通过简洁的方式解决问题,更容易的通过Scala和Groovy写JAX-RS应用,Scala和Groovy都拥有Java字节码兼容annotation支持。


当JSR启动,在REST社区有很多JSR是否能够体现REST的主要原则的置疑。Marc认为这个目标已经达到:

引用
我觉得API鼓励了一个以资源为中心的视角,和让开发者想到标识他们的资源和他们支持的函数。申明对内容交涉工作和缺省资源生命周期的支持鼓励了无状态的实现。如果我需要标识一个缺点,那么它将会被超媒体(hypermedia )限制性支持。API提供优秀的方式从URIs中获得信息也提供生成URIs,同时也留下了许多地方需要开发者使用超媒体适当标识。


Paul 同意:

是的,这是最困难的部分,JAX-RS提供了一些构建URIs的方式,但是使用模式型API缺乏URI绑定工具,比如JAXB。我想对这方面需要一些解释,例如阅读:Henry Story’s RDF serialization.

当问到JSR 311方面的工作是否改变了对web services的看法,Marc说这巩固了他的看法:“任何人都可以通过不带资源的HTTP创建超酷复杂的应用”。

最后Marc强调Jersey不仅是一个参考实现,也是一个很有用的工具。查看the specificationJersey reference implementation
来自: infoq.com
5
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 微软将在数据库软件中增加对java的支持 (转)

    微软将在数据库软件中增加对java的支持 (转)[@more@] 微软从Merant 公司获得了针对sql SERVER的jdbc driver,并和SQL SERVER 2000一起 发售。ms的发言人说,这样做是因为用...

  • 【WebServices系列】WebServices概述 (SOAPful WebServices & RESTful WebServices)

    本文简述WebServices,以及目前构建WebServices的两种方式,可以让入门者迅速了解web服务的常识在每一个关键点,都放置了延伸阅读的超链接,读者可以按需深入了解。

  • java创建restful_使用Java创建RESTful Web Service详解

    1.asm-3.1.jar 2.jersey-client-1.17.1.jar 3.jersey-core-1.17.1.jar 4.jersey-server-1.17.1.jar 5.jersey-servlet-1.17.1.jar 6.jsr311-api-1.1.1.jar 在工程Java Resources -> src中创建...

  • JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】

    在`Spring`大行其道的今天,很多人对Java的RESTful规范`JAX-RS(JSR 311)`可能比较陌生甚至未曾听闻,当然这也是能被“理解”的,毕竟Spring似乎现在已是`JavaEE`的事实标准。 现在有越来越多的公司希望能以简单而又...

  • 【Java基础】之 JSR 介绍

    JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。... Java API for RESTful Web Services (JAX-RS) 1.1 (JSR 311

  • Golang:go-restful库使用手册

    Golang:go-restful库使用手册 2019.4.1 版权声明:本文为博主chszs的原创文章,未经...go-restful项目是一个开源的、基于Golang开发的、用于构建REST风格的Web服务的库。 REST REST要求开发者显式地使用HTTP方法,...

  • Java RESTful Web Service实战(第2版)

    Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. —2版. —北京:机械工业出版社,2016.7 (Java核心技术系列) ISBN 978-7-111-54213-1 Ⅰ....

  • java jersey restful 详解

    前言 在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口...Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service,它包含三个部分: 核心服务器

  • java处理,调用外系统的 WebAPI(https请求)时,相关知识整理

    信息摘要(MD5,SHA)獲取 ・JSONUtil (【Json字符串】与【对象】 之间的互相转换) ・JSON └POM(坑)↓ └POM (无坑)↓ ■浏览器 CROS Pplicy相关 提供 webAPI 时,是否需要考虑 CORS PostMan 访问 WebAPI时,...

  • Java面试题全集(中)-Java Web和Web Service方面

    转自:... 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通...

  • Restful api详解和rpc api 区别

    什么是REST? REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。...满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST

  • Java Web学习总结(39)——JavaEE常用的Jar详解

    DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在...

  • Java面试题全集96-125(Java Web和Web Service)

    补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程序,一个基于Java的Web应用通常包含一个或多个Servlet类。Servlet不能够自行创建并执行,它是在Servlet容器中...

  • CXF开发RESTful风格的Web Service

    1、Web Service笔记(五):利用CXF结合Spring开发web service 2、XML学习笔记(三):Jaxb负责xml与javaBean映射  3、jax-rs详解 4、可以使用浏览器的工具调试:如 Firefox 的RESTClient 和

  • HK2学习之基础知识

    HK2是一个轻量级动态框架,它是JSR-330的实现。HK2的全称为“Hundred Kilobytes Kernel”.

  • Java面试题全集(中)

    2015年重新整理发布的Java面试题全集,这部分主要是与Java Web和Web Service相关的面试题。

  • 《骆昊-Java面试题全集(中)》学习笔记_2018_12_17

    这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且...

  • java JAX-RS

    一、简介Java Web有很多成熟的框架,主要可以分为两类Web Application和Web Services。用于Web Application的框架包括官方的Servlet/JSP, JSTL/JSF以及第三方Struts/Spring MVC(action-based)。Web Services的项目又...

  • restful架构详解

    最近做项目使用到了restful架构来实现一些对外开放的接口,其实这个restful架构也是webservice的一种,只不过这个更加轻量级,它是基于http协议的。...javaee-api-7.0.jar jersey-bundle-1.19.jar jersey-...

  • RESTFul架构详解

    REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是...

Global site tag (gtag.js) - Google Analytics