J2EE应用程序打包与部署之二2010-12-16在上一节中,我介绍了打包和部署的基本慨念及其角色和使用限制,在这一节中我将向大家介绍打包应用程序的具体方法。打包J2EE应用程序一个J2EE应用程序可以被打包为一个可移植的部署单元,称为商业档案文件(enterprise archive)。一个商业档案文件是一个标准的Java档案文件并带有ear扩展名。这样的文件包括一个或多个J2EE模块及一个J2EE应用程序的部署描述文件。J2EE应用程序的制作过程主要分为两步:首先,应用组件提供商负责开发EJB模块、Web层程序和应用客户模块。其次,应用程序集成商将这些模块打包在一起以创建一个可以部署的J2EE应用模块。同时应该说明的是,所有J2EE模块都是独立的可部署单位。这使组件提供者无需实现全部应用即可开发独立的功能单元。但是,我们需要对具体的打包概念和操作有一定理解。下图1说明各种类型的J2EE 模块(EJB、Web、应用客户和应用程序)及它们怎样被部署。虽然这个图只显示了一个独立的被部署的EJB模块,但是所有这四种类型的J2EE模块都可以被独立地部署。为了整合一个应用程序,应用程序整合人员将通过设定相应模块的部署描述文件之间的连接来解决组件之间的依赖关系。每个组件都可能在同一个档案文件中与其他组件具有依赖关系,或是在不同档案文件中。这些依赖关系都必须在部署之前解决。整合人员要保证相同组件在不同的档案文件中的描述保持一致。

图1 J2EE程序包结构J2EE规格对于组件和部署单元设置一定数量的需求,多数来说都是为适当的组件操作而准备的,但是组件容器并不需要实时执行这些规则中的大多数。1、EJB模块一个EJB模块通常被包装和部署为EJB Java档案文件和一个带有jar扩展名的Java 档案文件。这是ejb最小的可部署和可使用单位。一个标准的EJB模块包括:1) Java类文件,包含enterprise bean定义及其本地和远程接口;2) EJB代码中所依赖的Java类文件。这里是指在J2EE平台之外的代码文件;3) EJB部署描述文件,其提供了应用程序中用于enterprise bean的结构和整合信息。通常来说整合信息是可选的,并且只包含在整合应用程序中。应该说明的是,ear文件与标准的jar文件存在显著的区别:ear文件包含一个部署描述文件,它包含了一个或多个enterprise bean的主要形容信息。EJB Java档案文件除了可以在服务器端使用之外,一个EJB Java档案文件开发人员还可以开发包含用户程序需要访问的EJB类文件,这些类大多数包含在EJB Java档案文件。应该注意的是,服务器端的组件实现类文件通常不会包含在客户端的Java档案文件。在EJB Java档案文件中或client Java档案文件中的类可以直接在类文件中引入,或在外部引用中声明。