NetBeans IDE 6.0 的开发是在 Java EE 和 Glassfish 工作组的密切合作下完成的,它实现了与新的 Java EE 5 规范的完美集成,从而可以在此 IDE 中轻松地使用新规范。NetBeans IDE 6.0 是您快速学习 Java EE 5 编程并使用它高效工作的最佳途径。
本文档介绍了 Java EE 5 规范的一些重要概念,以及它们如何与您目前的编程项目相关联的。本文将介绍以下主题:
简化了对象关系映射。新的 Java 持久性 API 允许您使用 POJO 中的标注将 Java 对象映射到关系数据库,从而使对象关系映射变得更简单透明。
在 IDE 中,您可以对 Enterprise Beans 进行编码,就像对其他 Java 类进行编码一样,方法是:使用代码完成和编辑器提示实现正确的方法并使类与其接口保持同步。您不必使用特殊命令和对话框生成诸如业务方法或 Web 服务作之类的内容,虽然这些命令仍可以帮助您熟悉 Java EE 5 代码的语法。
标准化的对象关系映射。新规范将对对象关系映射的处理方式进行标准化,从而使开发人员不再需要了解特定于供应商的策略。Java 持久性 API 使用标注来指定对象关系映射信息,但它仍支持 XML 描述符。
命名查询。现在命名查询是用元数据表示的静态查询。查询可以是 Java 持久性 API 查询或本地查询。这样会使重用查询变得非常简单。
简单的打包规则。由于实体 Bean 是简单的 Java 技术类,因此几乎可以在 Java EE 应用程序中的任意位置将其打包。例如,实体 Bean 可以是 EJB JAR、应用程序客户端 JAR、WEB-INF/lib、WEB-INF/classes 的一部分,甚至是企业应用程序归档(Enterprise Application Archive, EAR) 文件中实用程序 JAR 的一部分。通过这些简单的打包规则,您不再需要创建 EAR 文件以使用来自 Web 应用程序或应用程序客户端的实体 Bean。
分离的实体。由于实体 Bean 是 POJO,因此可以对它们执行序列化,通过网络其发送到其他地址空间,并在不识别持久性的环境中使用它们。这样,您就不再需要使用数据传输对象 (Data Transfer Object, DTO)。
EntityManager API。现在,应用程序编程人员可以使用标准 EntityManager API 来执行涉及实体的创建、读取、更新和删除 (Create Read Update“删除”, CRUD) 操作。
IDE 提供了处理新 Java 持久性 API 的工具。您可以通过数据库自动生成实体类,或手动对实体类进行编码。IDE 还提供了用于创建和维护持久性单元的模板和图形编辑器。
Web 服务
在 Java EE 5 平台中,通过使用标注显著改进和简化了 Web 服务支持。以下规范已应用于此领域中:JSR 224,Java API for XML-Based Web Services (JAX-WS) 2.0;JSR 222Java 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 5 平台中用于 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 的信息,请参见 MTOM/XOP)。在 Java EE 5 技术出现之前,定义 Web 服务需要使用很长且复杂的描述符。现在,定义它却非常简单,只需将 @WebService 标注放置在 Java 技术类上即可。类上的所有公共方法会自动发布为 Web 服务操作,并且其所有参数都将使用 JAXB 2.0 映射到 XML 架构数据类型。