Java EE 平台不需要部署描述符(Servlet 规范所需的部署描述符 web.xml 文件除外),从而简化了部署过程。其他部署描述符(如 ejb-jar.xml 以及在 web.xml 中与 Web 服务相关的条目)已过时。J2EE 1.4 部署描述符通常很复杂,在填充它们时很容易出错。不过,Java EE 平台使用的是“标注”。标注是 Java 修饰符,与您在代码中指定的 public 和 private 类似。例如,EJB 3 规范(Java EE 规范的子集)为 Bean 类型、接口类型、资源引用、事务属性、安全性等定义了标注。JAX-WS 2.0 规范为 Web 服务提供了一组类似的标注。有些标注用来生成工件,另外一些标注用来描述代码,还有一些标注用来提供增强的服务,如安全性或特定于运行时的逻辑。总之,Java EE 平台为以下任务(以及其他任务)提供了标注:
定义和使用 Web 服务
开发 EJB 软件应用程序
将 Java 技术类映射到 XML
将 Java 技术类映射到数据库
将方法映射到操作
指定外部依赖关系
指定部署信息,其中包括安全属性
标注标有 @ 字符。在 IDE 中,当您创建了使用 Java EE 中的标注的类型时,将在生成的代码中提供相关的占位符。例如,当您使用 IDE 创建无状态会话 Bean 时,将生成以下代码,其中包括 @Stateless() 标注:
package mypackage;
import javax.ejb.*;
@Stateless()
public class HelloWorldSessionBean implements mypackage.HelloWorldSessionLocal {
}
IDE 提供了一些使用新 Java 持久性 API 的工具。您可以通过数据库自动生成实体类,也可以手动对实体类进行编码。IDE 还提供了用于创建和维护持久性单元的模板和图形编辑器。有关使用 Java 持久性 API 的详细信息,请参见 Java EE 6 应用程序入门指南。
Web 服务
在 Java EE 平台中,通过使用标注显著改进和简化了 Web 服务支持。以下规范已应用于此领域中:JSR 224,Java API for XML-Based Web Services (JAX-WS) 2.0;JSR 222,Java Architecture for XML Binding (JAXB) 2.0 以及 JSR 181,Web Services Metadata for the Java Platform。
JAX-WS 2.0
JAX-WS 2.0 是 Java EE 平台中用于 Web 服务的新 API。作为 JAX-RPC 1.1 的后续版本,JAX-WS 2.0 保留了原有的 RPC 编程模型,同时在以下几方面进行了改进:数据绑定、协议和传输的独立性、对 Web 服务的 REST 样式的支持以及易开发性。
与 JAX-RPC 1.1 的主要区别在于,现在所有数据绑定都委托给了 JAXB 2.0。这样,基于 JAX-WS 的 Web 服务就可以使用百分之百的 XML 架构,从而提高了互操作性和易用性。这两种技术已很好地集成在一起了,因此用户不必再为使用两套不同的工具而勉为其难了。从 Java 技术类开始开发时,JAXB 2.0 可以生成自动嵌入到 Web 服务描述语言 (Web Service Description Language, WSDL) 文档内的 XML 架构文档,从而使用户无需手动执行这一容易出错的集成过程。
JAX-WS 2.0 可以为 SOAP 1.1、SOAP 1.2 和 XML/HTTP 协议提供现成的支持。协议可扩展性从一开始就是人们所希望实现的目标,JAX-WS 2.0 允许供应商支持其他协议和编码来获取更佳的性能(例如 FAST Infoset)或专用的应用程序。Web 服务(使用附件来优化大型二进制数据的发送和接收)可以利用 W3C 制订的 MTOM/XOP(“消息传输优化机制/XML 二进制优化打包”的简称)标准,且对编程模型没有任何不利的影响。(有关 MTOM/XOP 的信息,请查看此页。)在 Java EE 技术出现之前,定义 Web 服务需要使用长且复杂的描述符。现在,定义它却非常简单,只需将 @WebService 标注放置在 Java 技术类上即可。类上的所有公共方法会自动发布为 Web 服务操作,并且其所有参数都将使用 JAXB 2.0 映射到 XML 架构数据类型。