JAX-RS 2.0 与 Bean Validation 1.1 成为首批获得批准的 Java EE 7 JSR

阅读数:744 2013 年 1 月 9 日

话题:JavaREST语言 & 开发架构

Java EE 7 目前正在紧锣密鼓地制订当中。前不久,JSR 339 与 JSR 349 经由公开投票而获得采纳,这样他们就成为了首批获得批准的两个 JSR。

Oracle 的 JCP Program Office 列出了完整的 Java EE 7 JSR 特性列表:

  • JSR 107:JCACHE——Java Temporary Caching API
  • JSR 236:Concurrency Utilities for Java EE
  • JSR 338:Java Persistence 2
  • JSR 346:Contexts and Dependency Injection 1.1 for Java EE
  • JSR 352:Batch Applications for the Java Platform
  • JSR 349:Bean Validation 1.1
  • JSR 339:JAX-RS 2.0:The Java API for RESTful Web Services

InfoQ 有幸采访到了 JSR 339 联合规范领导者 Marek Potociar 以了解关于最新版 RESTful Java API 的更多信息。

你好,Marek。JSR 339 已经快要完成了,并且公开审查也已经被接受。能否介绍一下目前的状态呢?

主要特性(比如说客户端 API、异步的服务端、过滤器与拦截器等)已经相当稳定了。我们仍在打磨 API 的一些细节信息,比如说常见配置、链接与超媒体支持以及常见处理异常体系等。最近,我们决定协调我们的发布计划与 BeanValidation 1.1 规范的发布,这样就可以将 BeanValidation 集成支持作为 JAX-RS 2.0 发布的一部分了。由于修改了计划,我们现在还在考虑加入对 JSON Processing API(JSR 353)的支持,因为 JSON 与 XML 已经成为众多现有 RESTful 服务所广泛支持的媒体类型了。这两者是目前仅有的尚未完全确定下来的新特性。

作为 JSR 311 的后继,最初的 RESTful Java Spec JSR 339 还有很多地方需要完善。你认为目前的状态如何?

总的来说,我们对在发布中所取得的成就感到满意,这包括新特性与对现有 API 和特性的澄清。我们期盼着将最终发布的 JAX-RS 2.0 作为 Java EE 7 的一部分。

对于 Restful Web Service Java 开发者来说,JSR 339 会增加哪些内容呢?

之前,很多新的标准化特性以私有扩展的形式提供给了 JAX-RS 框架(客户端 API 与请求 / 响应过滤就是很好的例子)。虽然这些扩展仍然被 RESTful Java 开发者大量使用,但结果代码的可移植性就会出现问题。开发者可以通过对 JAX-RS API 新的补充使用标准 API 编写移植性更好的代码。

能否谈谈有哪些内容的计划调整了呢?

这包含所有重要的特性。此外,虽然我们在开发 JAX-RS 2.0,但我们也对最初计划的特性集进行了增强。对于那些尚未涉及的特性来说,随着时间的流逝,我们决定放弃或是推迟,直到可以达成一致为止,在能够提出标准解决方案前,我们需要花不少时间尝试私有 API。对于主要特性来说,我们决定推迟如下特性:与 JSR 330(依赖注入)的紧密集成、高层次客户端 API 与 MVC View 模板框架集成。

其他语言或平台能否使用这个富框架呢?

平台方面,JAX-RS 规范是 Java EE 的一部分,但与 Java EE 应用服务器之间的耦合度并不是那么紧密,这一点与 EJB 等规范不同。很多 JAX-RS 实现(包括Jersey提供的参考实现)都可以直接运行在 Java SE 轻量级 HTTP 服务器上或是其他 HTTP 容器,如 Grizzly。与之类似,大多数 JAX-RS 框架都可以集成并运行在 Servlet 容器中。这样一来,JAX-RS 应用的部署就变得非常灵活了。
当然了,使用 RESTful 服务——无论是使用 JAX-RS 抑或其他框架编写的——是语言独立的。目前还没有将 JAX-RS 移植到其他语言的计划,因此现在其名字还是没什么问题的,严格来说它是 Java API。

接下来有什么计划,会有下一代 JSR 么,如果有,那么都会包含哪些特性呢?

当 JAX-RS 2.0 发布后,我们会收集社区反馈,可能会在一年左右时间内发布 2.0 的维护版本 2.1。我们已经开始收集下一个主 JAX-RS 发布的想法了。这是中期计划。

其余所有的 Java EE 7 JSR 要么处于“Public Review”状态,要么很快就将完成“Early Draft Review”阶段。要想了解所有 Java EE 7 JSR 的最新状态,请参考JCP Java EE 7 JSR 博客

查看英文原文:JAX-RS 2.0 and Bean Validation 1.1 First Java EE 7 JSRs to Win Public Approval