Java EE 6 Platform草案包含了Web Profile


作者
Dionysios G. Synodinos译者
宋玮
发布于
2009年2月3日 下午10时55分


社区
Java
主题
Enterprise Application Blocks
标签
Java EE

Java EE 6 Platform规范的公共草案已经发布了,其将对公众评估和反馈保持开放,直到2009年2月23日为止。 或许这一 迟到的草案最引人注目的地方就是Web Profile,这是Java EE平台历史上第一个profile。


规范的领导者Roberto Chinnici对这一Web Profile做了概述



经过深思熟虑,平台专家组选择中等版本的Web Profile,接近我先前博文中所提到的选项B。


所需的技术包括:


Servlet 3.0

JSP 2.2

EL 1.2

对其他语言的调试支持(JSR-45) 1.0

JSTL 1.2

JSF 2.0

JSR-250 1.1

EJB 3.1 Lite

JTA 1.1

JPA 2.0


你可能注意到有些版本号与最新发布的API(比如 EL 1.2)并不匹配。这是因为我们计划经由一个维护评估来改动相应技术的小版本号。当它们可用时我会提供更多细节。



Web Profile的基本情况在草案中做了解释:



Web Profile定位于现代Web应用的开发者。


至于“现代”这个词,我们主要是想强调这样一个事实:自从第一个Servlet规范问世以来,Web应用世界已经有了长足的发展。不可避免的,许多
用于创建即便是简单Web应用的技术也得到了跳跃式发展。实际上,今天很少有Web应用是直接用servlet
API编写的:大多数应用都依赖于标准的或第三方框架和类库(通常是开源的),它们间接用到了servlet容器的服务。


除了管理HTTP交互,大多数Web应用在事务管理、安全和持久化领域有相当大的需求。有时,这种需求完全可以用Java
EE平台的部分技术来解决,比如Enterprise JavaBeans (EJB) 3.x和Java Persistence
API,但是它们很少能由“普通(plain)” servlet容器支持。通过合并这些API,Web
Profile的目标是改善使用Java平台开发Web应用应该被考虑的基本技术栈。


定位为“现代”Web应用就暗示着要提供相当完整的技术栈,包括标准API、成品即可满足大级别Web应用需求的能力。更进一步,这一技术栈应该易于成长,以解决其余开发者的需求。


与走向完整性相反,另一方希望就限制Web容器内存占用的愿望做出平衡,这既包括物理方面也包括概念方面。从开发者学习Web
Profile的观点来看,与一个功能更强大但是过于复杂累赘的profile相比,拥有一个小型的、功能集中的profile更有价值,而且技术之间重
叠要尽量少。


在定义Web Profile过程中,我们努力在这两种需求之间寻找平衡。


在完整性方面,Web Profile提供了一个完整的技术栈,其所具有的技术能够处理展现和状态管理(JavaServer
Faces、JavaServer Pages)、核心Web容器功能(Servlet)、业务逻辑(Enterprise JavaBeans
Lite)、事务(Java Transaction API)、持久化(Java Persistence API)以及更多。


至于简单性,它省去了很多企业后台API,它们都是Java
EE平台的一部分。它还依赖于Servlet规范中新的可插接特性(参见文档的第8.2节)以允许应用以最小的配置使用扩展了servlet容器的类库。
例如,Java API for Restful Web Services(JAX-RS)是完整Java
EE平台的一个标准的技术,但却不是Web Profile的一部分,它可以不用对应用的Web.xml描述符做出任何改变就被“插接”到Web容器中。


最终,值得提醒的是,Web Profile产品发行可以不限于必须的技术,还可以发行更多的技术。因此在安装时可能要在不同配置之间做出选择,除了必须的核心,可以安装一些更丰富的扩展,或者完全自定义安装(“手动选择”安装)。



Roberto还解释了为什么JAX-RS不是Web Profile一个必须的组件,因为专家组感到把它包含进来还为时过早。


缺少的其它东西还有Web Beans,它在Web Profile和完整平台中都没有被列为必须组件:



Web Beans在Web Profile和完整平台中都没有被列为必须组件。另一方面,在EE.6.29节提到了正在考虑列入的组件。就这一主题专家组恳请来自社区的反馈。


敏感读者还会注意到Web Beans规范(目前是公共草案)就在昨天进行大量更新。Gavin King的 博文
录了这些改变的详细内容,它们大多是由来自JSR-316专家组的反馈触发的。最大的变化之一是,“Web
Beans”术语本身已经从规范中消失了。尽管这对有些人来说是一个打击,但是它确实有利于开发,因为这意味着Web
Beans提供的功能与已确立的Java EE“容器”和“组件”概念相合并。我认为最终的结果是一个更便于使用的、更好集成的、更易于学习的“Web
Beans”、为整个Java EE平台提供的上下文支持和依赖注入。



Bean Validation也没有被列为Java EE 6组件JSR:



敏感的读者还会注意到JSR-303曾在
公共评估版中出现,但却也未列入Java EE
6组件JSR。这只是时间问题;平台专家组刚刚开始讨论是否将JSR-303包含进来,因此在平台规范的公共草案发布之时还未做出这一决定。我要指出的
是,由Emmanuel
Bernard领导的EJSR-303专家组在解决JPA和JSF的校验领域需求方面已经做了大量工作,因此我确信JSR-303终将被社区所接受。



草案可供下载并包含了Java EE 6 规范和Web Profile规范。


关于社区对于该新规范的想法,在java.net上有一个关于此的投票。尽管投票的人为数不多,但结果显示该版本草案并没有激发起大家的兴趣



我喜欢它   12.1%

我认为主体规范缺少了重要JSR   3%

我认为web profile规范缺少了重要JSR   6%

由于一些其它原因我不喜欢它   6%

我还没有看过,但是打算看一下   9%

我还没有看过,而且不打算看   63.6%



从InfoQ的Enterprise Java主题下可以找到更多信息。


查看英文原文:Java EE 6 Platform Draft Published featuring the Web Profile