Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南

关于部署

部署生命周期

安装 Application Server 并启动域之后,您可以部署(安装)J2EE 应用程序和模块。在部署过程中和更改应用程序时,应用程序或模块可能会经过以下阶段:

  1. 初始部署

    部署应用程序或模块之前,请启动域。

    将应用程序或模块部署(安装)到特定的独立服务器实例或群集。由于应用程序和模块封装在归档文件中,因此在部署期间应指定归档文件名。默认情况下,部署到默认服务器实例 server

    如果部署到服务器实例或群集,应用程序或模块将存在于域的中心系统信息库中,并由部署到的所有目标群集或服务器实例引用。

    您还可以使用 asadmin deploy 命令(而非管理控制台)将其部署到域。如果将应用程序或模块只部署到域,则应用程序或模块将存在于域的中心系统信息库中,但要在添加引用之后才会有服务器实例或群集引用该应用程序或模块(如部署生命周期中所述)。

    部署是动态的:部署应用程序或模块后,无需重新启动服务器实例即可使用应用程序或模块。如果重新启动了服务器实例,所有已部署的应用程序和模块仍将处于部署状态并且可用。

  2. 启用或禁用

    默认情况下,将启用已部署的应用程序或模块,这表示可以运行它并且可以通过客户机对其进行访问(如果应用程序或模块已部署到可访问的服务器实例或群集)。要禁止访问,请禁用应用程序或模块。在部署之后,已禁用的应用程序或模块并未从域中被卸载,而且可以很容易地将其启用。

  3. 添加或删除已部署应用程序或模块的目标

    部署后,应用程序或模块将存在于中心系统信息库中,并可以被多个服务器实例和/或群集引用。最初,作为目标部署到的服务器实例或群集将引用应用程序或模块。

    在部署应用程序或模块后,要更改引用应用程序或模块的服务器实例和群集,请使用管理控制台更改应用程序或模块的目标,或使用 asadmin 工具更改应用程序引用。由于应用程序本身存储在中心系统信息库中,因此添加或删除目标将添加或删除不同目标上同一版本的应用程序。但是,可以在一个目标上启用而在另一个目标上禁用部署到多个目标的应用程序,因此即使应用程序被一个目标引用,也只有在该目标上启用它时用户才能对其进行使用。

  4. 重新部署

    要替换已部署的应用程序或模块,请将其重新部署。重新部署将自动取消部署先前已部署的应用程序或模块,并将其替换为新的应用程序或模块。

    当通过管理控制台重新部署时,重新部署的应用程序或模块将部署到域中,并且所有引用该应用程序或模块的独立或群集服务器实例将自动接收新的版本(如果已启用动态重新配置)。如果使用 asadmin deploy 命令来重新部署,请将 domain 指定为目标。

    对于生产环境,请使用滚动升级(升级应用程序而不中断服务)。有关更多信息,请参见“关于滚动升级”。

  5. 取消部署

    要卸载应用程序或模块,请取消部署应用程序或模块。

J2EE 归档文件的类型

软件供应商将应用程序或模块封装到了归档文件中。要部署应用程序或模块,请指定归档文件名。归档文件的内容和结构是按照 J2EE 平台的规范定义的。J2EE 归档文件的类型包括:

软件供应商可以将应用程序汇编为一个 EAR 文件或多个独立的 WAR 文件、EJB JAR 文件和应用程序客户机 JAR 文件。在管理工具中,用于所有类型文件的部署页面和命令都是类似的。

命名约定

在给定域中,已部署的应用程序和模块的名称必须是唯一的。

在一个应用程序中,不同类型的模块可以具有相同的名称。部署应用程序时,将使用 _jar_war_rar 后缀来命名保存各个模块的目录。相同类型的模块在一个应用程序内必须具有唯一的名称。此外,数据库架构文件名在一个应用程序内必须是唯一的。

建议将类似 Java 包的命名模式用于模块文件名、EAR 文件名、在 ejb-jar.xml 文件的 <module-name> 部分找到的模块名以及在 ejb-jar.xml 文件的 <ejb-name> 部分找到的 EJB 名称。使用这种类似软件包的命名模式可以确保不会发生名称冲突。这种命名方式的好处不仅适用于 Application Server,也适用于其他 J2EE 应用程序服务器。

EJB 组件的 JNDI 查找名也必须是唯一的。建立一致的命名约定可能会有帮助。例如,将应用程序名和模块名附加到 EJB 名称中是一种确保名称唯一的方式。在这种情况下,mycompany.pkging.pkgingEJB.MyEJB 将是模块 pkgingEJB.jar(该模块封装在应用程序 pkging.ear 中)中 EJB 的 JNDI 名称。

请确保软件包和文件名称中不包含空格或操作系统视为非法的字符。