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

第 2 章 部署应用程序

本章说明如何在 Application Server 上部署(安装)J2EE 应用程序。本章包含以下几节:

关于部署

部署生命周期

安装 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 名称。

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

有关部署应用程序的管理控制台任务

Procedure部署企业应用程序

企业应用程序封装在 EAR 文件中,是一种包含任何类型的 J2EE 独立模块的归档文件,如 WAR 和 EJB JAR 文件。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“企业应用程序”节点。

  3. 在“企业应用程序”页面中,单击“部署”。

  4. 在“部署”页面中,指定要部署的 EAR 文件的位置。

    服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

    • 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

      单击“浏览”以找到文件,或键入文件的完整路径。

    • 如果文件位于服务器上,或者要从展开的目录部署未封装的应用程序,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

      键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

  5. 单击“下一步”将显示“部署企业应用程序”页面。

  6. 在“部署企业应用程序”页面中,请指定应用程序的设置。

    1. 在“应用程序名称”字段中,既可以保留默认名称(即文件名的前缀),也可以键入其他名称。

      如果选择上载文件,将显示默认名称。应用程序名称必须唯一。

    2. 要在部署之后禁用应用程序以使其不可用,请选中“已禁用”单选按钮。

      默认情况下,部署应用程序之后即可使用该应用程序。

    3. 如果已部署应用程序,请选中“重新部署”复选框以对其进行重新部署;否则将显示错误。

      您也可以选择其他应用程序名称,并以新名称对其进行部署。

    4. 要在部署之前检验文件的结构和内容,请选中“验证器”复选框。

      大型应用程序的检验会很耗费时间。如果怀疑文件已损坏或不可移植,请检验文件。

    5. 要预编译 JSP 页面,请选中 "JSP" 复选框。

      如果未选中此复选框,则首次访问 JSP 页面时会在运行时编译这些页面。由于编译通常很耗费时间,因此在生产环境中请选中此复选框。

    6. 选择高可用性设置。

      要启用应用程序的高可用性,请选中“可用性”复选框。如果启用了应用程序的可用性,则必须也在所有更高级别(指配置和 Web 容器或 EJB 容器)启用可用性。

    7. 选择要将应用程序部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,应用程序将部署到默认服务器实例 server

      如果要重新部署,请勿选择目标。此时您所作的任何选择都将被忽略。引用已部署的应用程序的所有目标群集或独立服务器实例都将自动引用新的、重新部署的应用程序(如果已启用群集或独立实例的动态重新配置)。有关如何在不中断服务的情况下重新部署应用程序的更多信息,请参见“升级应用程序”。

    8. 选择是否生成 RMI 存根。

      如果选择生成 RMI 存根,将生成静态 RMI-IIOP 存根并将其放置到客户机 JAR 文件中。

  7. 单击“确定”以部署应用程序。

等效的 asadmin 命令

deploy

Procedure编辑已部署的企业应用程序

  1. 在树组件中,展开“应用程序”节点。

  2. 展开“企业应用程序”节点。

  3. 选择已部署的应用程序的节点。

  4. 在“企业应用程序”页面中,更改说明。

  5. 在企业版中,启用或禁用高可用性。

    如果启用了应用程序的可用性,则必须也在所有更高级别(指配置和 Web 容器或 EJB 容器)启用可用性。

Procedure部署 Web 应用程序

Web 应用程序封装在 WAR 文件中,是一种包含组件(如 Servlet 和 JSP 文件)的归档文件。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“Web 应用程序”节点。

  3. 在“Web 应用程序”页面中,单击“部署”。

  4. 在“部署”页面中,指定要部署的 WAR 文件的位置。

    服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

    • 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

      单击“浏览”以找到文件,或键入文件的完整路径。

    • 如果文件位于服务器上,或者要从展开的目录部署未封装的应用程序,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

      键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

  5. 单击“下一步”将显示“部署 Web 应用程序”页面。

  6. 在“部署 Web 应用程序”页面中,请指定应用程序的设置。

    1. 在“应用程序名称”字段中,既可以保留默认名称(即文件名的前缀),也可以键入其他名称。

      如果选择上载文件,将显示默认名称。应用程序名称必须唯一。

    2. 在“上下文根路径”字段中,输入标识 Web 应用程序的字符串。

      在 Web 应用程序的 URL 中,上下文根紧跟着端口号 (http://host:port/context-root/...)。确保上下文根路径以正斜杠开头,例如:/hello

    3. 要在部署之后禁用应用程序以使其不可用,请选中“已禁用”单选按钮。

      默认情况下,部署应用程序之后即可使用该应用程序。

    4. 如果已部署应用程序,请选中“重新部署”复选框以对其进行重新部署;否则将显示错误。

      您也可以选择其他应用程序名称,并以新名称对其进行部署。

    5. 要在部署之前检验文件的结构和内容,请选中“验证器”复选框。

      大型应用程序的检验通常会很耗费时间。如果怀疑文件已损坏或不可移植,请检验文件。

    6. 要预编译 JSP 页面,请选中 "JSP" 复选框。

      如果未选中此复选框,则首次访问 JSP 页面时会在运行时编译这些页面。由于编译通常很耗费时间,因此在生产环境中请选中此复选框。

    7. 选择高可用性设置。

      要启用应用程序的高可用性,请选中“可用性”复选框。如果启用了应用程序的可用性,则必须也在所有更高级别(指配置和 Web 容器或 EJB 容器)启用可用性。

    8. 选择要将应用程序部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,应用程序将部署到默认服务器实例 server

      如果要重新部署,请勿选择目标。此时您所作的任何选择都将被忽略。引用已部署的应用程序的所有目标群集或独立服务器实例都将自动引用新的、重新部署的应用程序(如果已启用群集或独立实例的动态重新配置)。有关如何在不中断服务的情况下重新部署应用程序的更多信息,请参见“关于滚动升级”。

    9. 选择是否生成 RMI 存根。

      如果选择生成 RMI 存根,将生成静态 RMI-IIOP 存根并将其放置到客户机 JAR 文件中。

  7. 单击“确定”以部署应用程序。

等效的 asadmin 命令

deploy

Procedure启动已部署的 Web 应用程序

部署应用程序之后,可以从管理控制台启动该应用程序。服务器和 HTTP 侦听器必须正在运行,应用程序才能启动。

  1. 在树组件中,展开“应用程序”节点。

  2. 单击“Web 应用程序”。

  3. 单击 Web 应用程序的“启动”链接。

  4. 在“Web 应用程序链接”页面中单击链接以启动应用程序。

Procedure部署 EJB 模块

EJB 模块也称为 EJB JAR 文件,包含企业 Bean。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“EJB 模块”节点。

  3. 在“EJB 模块”页面中,单击“部署”。

  4. 在“部署”页面中,指定要部署的 JAR 文件的位置。

    服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

    • 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

      单击“浏览”以找到文件,或键入文件的完整路径。

    • 如果文件位于服务器上,或者要从展开的目录部署未封装的应用程序,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

      键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

  5. 单击“下一步”以显示“部署 EJB 模块”页面。

  6. 在“部署 EJB 模块”页面中,指定模块的设置。

    1. 在“应用程序名称”字段中,既可以保留默认名称(即文件名的前缀),也可以键入其他名称。

      如果选择上载文件,将显示默认名称。应用程序名称必须唯一。

    2. 要在部署之后禁用模块以使其不可用,请选中“已禁用”单选按钮。

      默认情况下,部署模块之后即可使用该模块。

    3. 如果已部署模块,请选中“重新部署”复选框以对其进行重新部署;否则将显示错误。

      您也可以选择其他应用程序名称,并以新名称对其进行部署。

    4. 要在部署之前检验文件的结构和内容,请选中“验证器”复选框。

      大型应用程序的检验会很耗费时间。如果怀疑文件已损坏或不可移植,请检验文件。

    5. 选择高可用性设置。

      要启用模块的高可用性,请选中“可用性”复选框。如果启用了模块的可用性,则必须也在所有更高级别(指配置和 Web 容器或 EJB 容器)启用可用性。

    6. 选择要将模块部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,模块将部署到默认服务器实例 server

      如果要重新部署,请勿选择目标。此时您所作的任何选择都将被忽略。引用已部署的模块的所有目标群集或独立服务器实例都将自动引用新的、重新部署的模块(如果已启用群集或独立实例的动态重新配置)。有关如何在不中断服务的情况下重新部署模块的更多信息,请参见“关于滚动升级”。

    7. 选择是否生成 RMI 存根。

      如果选择生成 RMI 存根,将生成静态 RMI-IIOP 存根并将其放置到客户机 JAR 文件中。

  7. 单击“确定”以部署该模块。

等效的 asadmin 命令

deploy

Procedure部署连接器模块

连接器也称为资源适配器,封装在一种称为 RAR 文件的归档文件中。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“连接器模块”节点。

  3. 在“连接器模块”页面中,单击“部署”。

  4. 在“部署”页面中,指定要部署的 RAR 文件的位置。

    服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

    • 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

      单击“浏览”以找到文件,或键入文件的完整路径。

    • 如果文件位于服务器上,或者要从展开的目录部署未封装的模块,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

      键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

  5. 单击“下一步”以显示“部署连接器模块”页面。

  6. 在“部署连接器模块”页面中,指定模块的设置。

    1. 在“应用程序名称”字段中,既可以保留默认名称(即文件名的前缀),也可以键入其他名称。

      如果选择上载文件,将显示默认名称。应用程序名称必须唯一。

    2. 在“线程池 ID”字段中,为要部署的资源适配器指定线程池。

      默认情况下,Application Server 处理其默认线程池中所有资源适配器的工作请求。使用该字段可以关联特定用户创建的线程池以处理资源适配器的工作请求。

    3. 要在部署之后禁用模块以使其不可用,请选中“已禁用”单选按钮。

      默认情况下,部署模块之后即可使用该模块。

      启用或禁用连接器模块时,您也同时启用或禁用了指向该模块的连接器资源和连接池。

    4. 如果已部署模块,请选中“重新部署”复选框以对其进行重新部署;否则将显示错误。

      您也可以选择其他应用程序名称,并以新名称对其进行部署。

    5. 要在部署之前检验文件的结构和内容,请选中“验证器”复选框。

      大型应用程序的检验通常会很耗费时间。如果怀疑文件已损坏或不可移植,请检验文件。

    6. 如果资源适配器被指定了其他属性,将显示这些属性。

      使用此表可以修改这些属性的默认值。

    7. 选择要将模块部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,模块将部署到默认服务器实例 server

      如果要重新部署,请勿选择目标。此时您所作的任何选择都将被忽略。引用已部署的模块的所有目标群集或独立服务器实例都将自动引用新的、重新部署的模块(如果已启用群集或独立实例的动态重新配置)。有关如何在不中断服务的情况下重新部署模块的更多信息,请参见“关于滚动升级”。

  7. 单击“确定”以部署该模块。

等效的 asadmin 命令

deploy

Procedure创建生命周期模块

在被服务器生命周期中的一个或多个事件触发后,生命周期模块将执行任务。这些服务器事件包含:

生命周期模块不符合 J2EE 规范,但是该模块是 Application Server 的增强功能。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“生命周期模块”节点。

  3. 在“生命周期模块”页面中,单击“新建”。

  4. 在“创建生命周期模块”页面中,指定以下设置:

    1. 在“名称”字段中,键入表示模块功能的名称。

    2. 在“类名称”字段中,键入生命周期模块类文件的全限定名称。

    3. 如果包含生命周期的 JAR 文件位于服务器的类路径中,请将“类路径”字段保留为空。否则,键入全限定路径。

      如果不指定类路径,则必须在 domain-dir/applications/lifecycle-module/module-name 中解压缩类。如果指定类路径,则无需其他操作。

    4. 在“装入顺序”字段中,键入大于 100 且小于操作系统的 MAXINT 值的整数。

      该整数将确定服务器启动时装入生命周期模块的顺序。系统将较早装入具有较小整数的模块。

    5. 启动服务器时,服务器将装入已部署的生命周期模块。

      默认情况下,如果装入失败,服务器仍将继续进行启动操作。要在装入失败时禁止服务器启动,请选中“装入失败时”复选框。

    6. 要在部署之后禁用模块以使其不可用,请选中“已禁用”单选按钮。

      因为生命周期模块是在服务器启动时调用的,所以禁用的生命周期模块在服务器实例重新启动前仍会产生影响。

    7. 选择要将模块部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,模块将部署到默认服务器实例 server

  5. 单击“确定”。

等效的 asadmin 命令

create-lifecycle-module

Procedure部署应用程序客户机模块

应用程序客户机模块也称为 J2EE 应用程序客户机 JAR 文件,包含客户机的服务器端例程。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择“应用程序客户机模块”节点。

  3. 在“应用程序客户机模块”页面中,单击“部署”。

  4. 在“部署”页面中,指定要部署的 JAR 文件的位置。

    服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

    • 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

      单击“浏览”以找到文件,或键入文件的完整路径。

    • 如果文件位于服务器上,或者要从展开的目录部署未封装的模块,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

      键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

  5. 单击“下一步”以显示“部署应用程序客户机模块”页面。

  6. 在“部署应用程序客户机模块”页面中,指定模块的设置。

    1. 在“应用程序名称”字段中,既可以保留默认名称(即文件名的前缀),也可以键入其他名称。

      如果选择上载文件,将显示默认名称。应用程序名称必须唯一。

    2. 如果已部署模块,请选中“重新部署”复选框以对其进行重新部署;否则将显示错误。

      您也可以选择其他应用程序名称,并以新名称对其进行部署。

    3. 要在部署之前检验文件的结构和内容,请选中“验证器”复选框。

      大型应用程序的检验会很耗费时间。如果怀疑文件已损坏或不可移植,请检验文件。

    4. 选择要将模块部署到的目标。

      从可用目标的列表中选择目标,并单击“添加”。目标可以是群集或独立服务器实例。如果不选择目标,模块将部署到默认服务器实例 server

      如果要重新部署,请勿选择目标。此时您所作的任何选择都将被忽略。引用已部署的模块的所有目标群集或独立服务器实例都将自动引用新的、重新部署的模块(如果已启用群集或独立实例的动态重新配置)。有关如何在不中断服务的情况下重新部署模块的更多信息,请参见“关于滚动升级”。

    5. 选择是否生成 RMI 存根。

      如果选择生成 RMI 存根,将生成静态 RMI-IIOP 存根并将其放置到客户机 JAR 文件中。

      对于客户端例行程序:

      • 通常,应用程序供应商会发行包含客户端例行程序的 JAR 文件。

      • 应用程序供应商通过指定 asadmin deploy 命令的 --retrieve 选项来获取客户端存根。

  7. 单击“确定”以部署该模块。

等效的 asadmin 命令

deploy

Procedure指定要部署的归档文件

在应用程序或模块页面上单击“部署”,以访问“部署”页面。在“部署”页面中,指定封装应用程序或模块的归档文件的位置。

服务器是运行应用程序服务器和域管理服务器的主机。客户机是可通过浏览器查看管理控制台的主机。

  1. 如果文件位于客户机上或可以从客户机访问,则单击单选按钮以指定要上载到 Application Server 的软件包文件。

    单击“浏览”以找到文件,或键入文件的完整路径。

  2. 如果文件位于服务器上,或者要从展开的目录部署未封装的应用程序,则单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

    键入文件或目录的完整路径名。从展开的目录部署适用于高级开发者,但不建议在生产环境下进行此操作。

有关列出、取消部署以及启用应用程序的管理控制台任务

Procedure列出已部署的应用程序

  1. 在树组件中,展开“应用程序”节点。

  2. 展开应用程序或模块类型的节点。

    要查看已部署的应用程序或模块的详细信息,请执行以下操作之一:

    • 在树组件中,选择应用程序或模块的节点。

    • 在页面中选择“应用程序名称”一栏中的条目。

等效的 asadmin 命令

list-components

Procedure列出子组件

企业应用程序、Web 应用程序、EJB 模块和连接器模块都包含子组件。例如,Web 应用程序可能包含一个或多个 Servlet。

  1. 在树组件中,展开“应用程序”节点。

  2. 展开要查看其描述符的应用程序或模块类型的节点。

  3. 选择已部署的应用程序或模块的节点。

  4. 在“应用程序或模块”页面中,查看“子组件”表的内容。

等效的 asadmin 命令

list-sub-components

Procedure查看已部署的应用程序的模块描述符

对于企业应用程序、Web 应用程序、EJB 模块、连接器模块和应用程序客户机模块,您可以查看模块部署描述符。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择要查看其描述符的应用程序或模块类型的节点。

  3. 选择已部署的应用程序或模块的节点。

  4. 选择“描述符”选项卡。

  5. 要查看描述符文件的文本,请单击文件名。

    页面将显示文件内容。此信息为只读。

Procedure取消部署应用程序或模块

取消部署应用程序或模块将从域中将其卸载并删除所有实例对它的引用。

  1. 在树组件中,展开“应用程序”节点。

  2. 选择要取消部署的应用程序或模块的类型的节点。

  3. 在列出已部署的应用程序的表中,选中要取消部署的应用程序或模块的复选框。

  4. 单击“取消部署”。

等效的 asadmin 命令

undeploy

Procedure启用或禁用应用程序或模块

如果启用了已部署的应用程序或模块,则可以通过客户机对其进行访问。如果将其禁用,它将仍然处于部署状态,但不能通过客户机对其进行访问。默认情况下,在部署应用程序或模块时,由于默认情况下选中了“在所有目标上启用”单选按钮,因此将启用该应用程序或模块。

  1. 在树组件中,展开“应用程序”节点。

  2. 展开应用程序类型的节点。

  3. 要启用已部署的应用程序或模块,请选中已部署的应用程序或模块旁边的复选框。

    在单个目标上启用应用程序:

    1. 选择应用程序的节点。

    2. 单击“目标”选项卡。

    3. 选中已部署的应用程序或模块旁边的复选框。

  4. 单击“启用”或“禁用”。

    这些按钮用于在所有目标上启用或禁用应用程序。

等效的 asadmin 命令

enabledisable

Procedure管理应用程序目标

部署应用程序或模块之后,通过管理目标服务器实例和群集来管理引用该应用程序或模块的服务器实例和群集。

  1. 在树组件中,展开“应用程序”节点。

  2. 展开应用程序类型的节点。

  3. 选择已部署的应用程序的节点。

  4. 选择“目标”选项卡。

  5. 要在特定目标实例或群集上启用或禁用应用程序,请单击目标旁边的复选框并单击“启用”或“禁用”。

  6. 要添加或删除应用程序的目标,则选择“管理目标”。

  7. 添加或删除目标并单击“确定”。

    此时,已修改的目标列表中将包含该应用程序。

等效的 asadmin 命令

create-application-refdelete-application-ref

Procedure部署在其他虚拟服务器上

将应用程序或模块部署到目标服务器实例或群集后,可以将其与其他虚拟服务器相关联。

  1. 在已部署应用程序或模块的“目标”页面中,单击目标旁边的“管理虚拟服务器”链接。

  2. 在可用虚拟服务器的列表中,添加或删除虚拟服务器目标。

  3. 单击“确定”。

重新部署到多个目标

如果将应用程序部署到多个目标(独立服务器实例或群集),则可以通过两种方式来重新部署到多个目标。使用以下方法之一可以确保引用应用程序的所有服务器实例接收到最新版本。

开发环境

在开发环境中,只重新部署应用程序。应用程序将被重新部署到域,并且引用它的所有目标将自动接收到新的版本(如果已启用目标服务器实例的动态重新配置)。默认情况下,将启用动态重新配置。如果未启用服务器实例的动态重新配置,将继续使用旧版本,直至重新启动服务器实例。

生产环境

在生产环境中,请按“关于滚动升级”中的详细步骤进行操作。

Procedure配置动态重新装入

如果启用了动态重新装入,服务器将定期检查已部署的应用程序中的更改并自动重新装入包含更改的应用程序。更改将通过您手动创建的名为 .reload 的文件的日期更改来显示。应用程序必须安装以下目录中:domain-dir/applications/j2ee-modules module-namedomain-dir/applications/j2ee-apps/app-name

例如:


/opt/SUNWappserver/domain/domain1/applications/j2ee-modules/webapps-simple

动态重新装入在开发环境中很有用,因为它允许快速测试代码更改。但在生产环境中,动态重新装入可能会使性能降低。


注 –

动态重新装入仅适用于默认服务器实例。


动态重新装入适用于开发环境。它与会话持久性(一种生产环境功能)不兼容。如果启用了动态重新装入,则不要启用会话持久性。

  1. 在树组件中,展开“独立实例”节点。

  2. 单击 "server"(管理服务器)。

  3. 单击“高级”。

  4. 在“应用程序配置”页面中,配置以下项目:

    • 重新装入:使用“已启用”复选框来启用或禁用动态重新装入。

    • 重新装入轮询时间间隔:指定服务器检查已部署的应用程序中的更改的频率。

    • 管理会话超时:指定管理会话超时且必须重新登录之前的时间。

接下来的操作

将系统配置为使用动态重新装入后,请为每个要动态重新装入的应用程序创建一个名为 .reload 的文件并将其放置在应用程序的目录中。此文件没有任何内容。更改应用程序时,将更改该文件的日期(例如,使用 UNIX touch 命令),并且将自动重新装入更改。

适用于开发者的部署方法

另请参见:

Procedure使用自动部署

自动部署功能使您能够通过将预封装的应用程序或模块复制到 domain-dir/autodeploy 目录来部署该应用程序或模块。

例如,将名为 hello.war 的文件复制到 domain-dir/autodeploy 目录。要取消部署应用程序,请从 autodeploy 目录中删除 hello.war 文件。

也可以使用管理控制台或 asadmin 工具来取消部署应用程序。在这种情况下,归档文件将保留。


注 –

自动部署仅适用于默认服务器实例。


自动部署功能适用于开发环境。它与会话持久性(一种生产环境功能)不兼容。如果启用了自动部署,则不要启用会话持久性。

  1. 在树组件中,展开“独立实例”节点。

  2. 单击 "server"(管理服务器)。

  3. 单击“高级”。

  4. 在“应用程序配置”页面中,配置以下项目:

    1. 通过选中或取消选中“已启用”复选框来启用或禁用自动部署。

    2. 在“自动部署轮询时间间隔”字段中,指定服务器检查自动部署目录中的应用程序文件或模块文件的频率。

      更改轮询时间间隔不会影响部署应用程序或模块所需的时间。

    3. 在“自动部署目录”中,如果指定生成应用程序的目录,则不必将文件复制到默认自动部署目录。

      默认目录是服务器实例的根目录中名为 autodeploy 的目录。

      默认情况下,可使用变量自动更改多个服务器实例的目录。有关这些变量的更多信息,请参见设置高级域属性

    4. 要在部署之前运行检验器,请选择“检验器”。

      验证器将检查文件的结构和内容。大型应用程序的检验通常会很耗费时间。

    5. 要预编译 JSP 页面,请选择“预编译”。

      如果未选中此复选框,则首次访问 JSP 页面时会在运行时编译这些页面。由于编译通常很耗费时间,因此在生产环境中请选中此复选框。

Procedure部署目录中未封装的应用程序

此功能适用于高级开发者。

使用目录部署仅部署到默认服务器实例 (server)。您不能使用它来部署到群集或独立服务器实例。

包含未封装的应用程序或模块的目录有时称为展开的目录。目录的内容必须与相应的 J2EE 归档文件的内容匹配。例如,如果部署某一目录中的 Web 应用程序,则该目录的内容必须与相应的 WAR 文件的内容相同。有关必需的目录内容的信息,请参见相应的规范。

您可以直接在展开的目录中更改部署描述符文件。

如果您的环境被配置为使用动态重新装入,则还可以从目录中动态重新装入已部署的应用程序。有关更多信息,请参见配置动态重新装入

  1. 在管理控制台中启动部署进程。请参见部署 Web 应用程序

  2. 在“部署”页面中,指定以下内容:

    1. 单击单选按钮以指定必须可以从服务器上访问的软件包文件或目录路径。

    2. 在“文件或目录”字段中,输入展开的目录的名称。

等效的 asadmin 命令

deploydir

使用 deploytool 实用程序

为软件开发者设计的 deploytool 实用程序可以封装和部署 J2EE 应用程序和模块。有关如何使用 deploytool 的说明,请参见《The J2EE 1.4 Tutorial》。

使用部署规划

此功能适用于高级开发者。

部署规划是指仅包含特定于 Application Server 的部署描述符的 JAR 文件。有关这些部署描述符(例如 sun-application.xml)的说明,请参见 Application Server Developer’s Guide。部署规划是 JSR 88: J2EE Application Deployment 实现的一部分。使用部署规划可以部署不包含特定于 Application Server 的部署描述符的应用程序或模块。

要使用部署规划进行部署,请指定 asadmin deploy 命令的 --deploymentplan 选项。例如,以下命令将根据 mydeployplan.jar 文件中指定的规划来部署 myrosterapp.ear 文件中的企业应用程序。


$ asadmin deploy --user admin ---deploymentplan mydeployplan.jar myrosterapp.ear

在企业应用程序 (EAR) 的部署规划文件中,sun-application.xml 文件位于根级别目录下。根据以下语法来存储每个模块的部署描述符:module-name.sun-dd-name,其中 sun-dd-name 取决于模块类型。如果模块包括 CMP 映射文件,则该文件命名为 module-name.sun-cmp-mappings.xml.dbschema 文件存储在根级别目录下,并用井号 (#) 替换每个正斜杠符号 (/)。下面列出的内容显示了企业应用程序 (EAR) 的部署规划文件的结构。

$ jar -tvf mydeployplan.jar
420 Thu Mar 13 15:37:48 PST 2003 sun-application.xml
370 Thu Mar 13 15:37:48 PST 2003 RosterClient.war.sun-web.xml
418 Thu Mar 13 15:37:48 PST 2003 roster-ac.jar.sun-application-client.xml
1281 Thu Mar 13 15:37:48 PST 2003 roster-ejb.jar.sun-ejb-jar.xml
2317 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.sun-ejb-jar.xml
3432 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.sun-cmp-mappings.xml
84805 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.RosterSchema.dbschema

在 Web 应用程序或模块文件的部署规划中,特定于 Application Server 的部署描述符位于根级别目录下。如果独立 EJB 模块包括 CMP Bean,则部署规划包括位于根级别目录中的 sun-cmp-mappings.xml.dbschema 文件。在下面列出的内容中,部署规划描述了 CMP Bean。

$ jar r -tvf myotherplan.jar
3603 Thu Mar 13 15:24:20 PST 2003 sun-ejb-jar.xml
3432 Thu Mar 13 15:24:20 PST 2003 sun-cmp-mappings.xml
84805 Thu Mar 13 15:24:20 PST 2003 RosterSchema.dbschema