使用 wsadmin 脚本编制来安装企业应用程序

使用 AdminApp 对象或 AdminApplication 脚本库将应用程序安装到应用程序服务器运行时。 您可以安装企业归档文件 (EAR) , Web 应用程序归档 (WAR) 文件, servlet 归档 (SAR) 或 Java™ 归档 (JAR) 文件。

准备工作

在 Network Deployment 安装上,在安装应用程序前请验证 Deployment Manager 是否正在运行。 使用 startManager 命令实用程序来启动 Deployment Manager。

可通过两种方法来完成本任务。 完成本主题中的步骤来使用 AdminApp 对象安装企业应用程序。 或者,可以使用 AdminApplication 脚本库中的脚本来安装、卸载和管理应用程序配置。
避免麻烦: 在企业应用程序部署期间,可能需要扫描应用程序二进制文件以获取 Java EE 5 或更高版本引入的注释。 如果应用程序是使用高于 Deployment Manager 的 Java SDK 级别的 Java SDK 级别进行编译,那么可能无法进行部署。 Deployment Manager 需要处于相同的 Java SDK 级别或高于应用程序的 Java SDK 级别。

脚本编制库提供了一组过程,可自动执行最常见的管理功能。 可以逐个运行每个脚本过程,也可以将几个过程组合在一起来快速开发新脚本。

有关此任务

使用本主题从企业归档文件 (EAR) , Web 应用程序归档 (WAR) 文件, servlet 归档 (SAR) 或 Java 归档 (JAR) 文件安装应用程序。 归档文件必须以 .ear.jar.sar.war 结束,以使 wsadmin 工具完成安装。 wsadmin 工具使用这些扩展名来确定归档类型。 wsadmin 工具自动将 WAR 文件和 JAR 文件封装为 EAR 文件。

最佳实践: 将应用程序安装到混合版本环境时,请使用 wsadmin 工具的最新产品版本,以确保最新的 wsadmin 选项和命令可用。

过程

  1. 启动 wsadmin 脚本编制工具。
  2. 确定在配置中安装应用程序时使用的选项。

    例如,如果配置包含节点、单元和服务器,那么在输入 install 命令时可以指定该信息。 查看 AdminApp 对象安装的选项, installInteractive, edit , editInteractive, update 和 updateInteractive 命令 (使用 wsadmin 脚本编制) 主题中 installinstallinteractive 命令的有效选项列表,以找到 -node-cell-server 选项的正确语法。 对于此配置,请使用以下命令示例:

    使用 Jython:
    AdminApp.install('location_of_ear.ear','[-node nodeName -cell cellName -server serverName]')
    使用 Jacl:
    $AdminApp install "location_of_ear.ear" {-node nodeName -cell cellName -server serverName}

    还可以使用 options 命令获取企业归档 (EAR) 文件支持的选项列表,例如:

    使用 Jython:
    print AdminApp.options()
    使用 Jacl:
    $AdminApp options

    您可以在批处理方式下使用选项来设置或更新配置值。 为了确定要设置或更新哪个配置对象,将使用只读字段的值来查找相应的配置对象。 只读字段的所有值都必须与现有配置对象匹配,否则命令将失败。

    您可以使用模式匹配来简化为某些复杂选项提供必需值的任务。 模式匹配仅适用于必需字段或只读字段。

  3. 选择使用 installinstallInteractive 命令来安装应用程序。

    您可使用 install 命令以批处理方式安装应用程序,或可使用 installinteractive 命令以交互方式安装应用程序。 交互方式通过一系列任务提示您提供信息。 install 命令和 installinteractive 命令支持先前步骤中选择用于安装的选项集。

  4. 安装应用程序。
    对于本示例,仅将 -server 选项与 install 命令一起使用,其中 -server 选项的值是 serv2。 使用基于配置选择的选项来定制 installinstallinteractive 命令。
    • 使用 install 命令以批处理方式安装应用程序:
      • (仅限于 Network Deployment 安装)以下命令使用 EAR 文件和命令选项信息来在集群中安装应用程序:
        • 使用 Jython 字符串:

          [AIX Solaris HP-UX Linux Windows]
          AdminApp.install('c:/MyStuff/application1.ear', '[-cluster cluster1]')
          [z/OS]
          AdminApp.install('MyStuff/application1.ear', '[-cluster cluster1]')
          [IBM i]
          AdminApp.install('/home/myProfile/MyStuff/application1.ear', '[-cluster cluster1]')
        • 使用 Jython 列表:

          [AIX Solaris HP-UX Linux Windows]
          AdminApp.install('c:/MyStuff/application1.ear', ['-cluster', 'cluster1'])
          [z/OS]
          AdminApp.install('MyStuff/application1.ear', ['-cluster', 'cluster1'])
          [IBM i]
          AdminApp.install('/home/myProfile/MyStuff/application1.ear', ['-cluster', 'cluster1'])
        • 使用 Jacl:

          [AIX Solaris HP-UX Linux Windows]
          $AdminApp install "c:/MyStuff/application1.ear" {-cluster cluster1}
          [z/OS]
          $AdminApp install "MyStuff/application1.ear" {-cluster cluster1}
          [IBM i]
          $AdminApp install "/home/myProfile/MyStuff/application1.ear" {-cluster cluster1}
        表 1。 install cluster 命令元素 使用 -cluster 选项运行 install 命令。
        元素 描述
        $ 是使用其值替换变量名的 Jacl 运算符
        AdminApp 是允许对应用程序对象进行管理的对象
        install 是 AdminApp 命令
        MyStuff/application1.ear 是要安装的应用程序名称
        cluster 是安装选项
        cluster1 将作为集群名称的集群选项的值
    • 使用 installInteractive 命令以交互方式安装应用程序。 下列命令提示您通过一系列安装任务来更改应用程序信息:
      • 使用 Jython:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.installInteractive('c:/MyStuff/application1.ear')
        [z/OS]
        AdminApp.installInteractive('MyStuff/application1.ear')
        [IBM i]
        AdminApp.installInteractive('/home/myProfile/MyStuff/application1.ear')
      • 使用 Jacl:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp installInteractive "c:/MyStuff/application1.ear"
        [z/OS]
        $AdminApp installInteractive "MyStuff/application1.ear"
        [IBM i]
        $AdminApp installInteractive "/home/myProfile/MyStuff/application1.ear"
      表 2。 installInteractive 命令元素 使用要安装的应用程序的名称运行 installInteractive 命令。
      元素 描述
      $ 是使用其值替换变量名的 Jacl 运算符
      AdminApp 是允许对应用程序对象进行管理的对象
      installInteractive 是 AdminApp 命令
      MyStuff/application1.ear 是要安装的应用程序名称
  5. 保存配置更改。
    请使用以下命令示例来保存配置更改:
    AdminConfig.save()
  6. (仅限于 Network Deployment 环境)使节点同步。

下一步做什么?

如果系统成功安装应用程序,那么此任务中的步骤将返回成功消息。 但是,这些步骤可能会在系统解压缩二进制文件之前成功完成。 例如,在网络部署环境中,在完成节点同步后解压缩二进制文件。 在系统解压缩所有二进制文件后,您才能启动应用程序。 在启动应用程序前使用 AdminApp 对象的 isAppReadygetDeployStatus 命令来验证系统是否已解压缩二进制文件。

如果系统已准备就绪,可以启动应用程序,那么 isAppReady 命令将返回值 true,如果系统未准备就绪,无法启动应用程序,那么该命令将返回值 false。 如果系统未准备好,无法启动应用程序,那么系统可能正在展开应用程序二进制文件。 用于通常在安装应用程序后将其启动的脚本将循环对 isAppReady 的调用,直到其返回值 true,再尝试启动应用程序。

例如,使用 Jython:
import time
result = AdminApp.isAppReady('application1')
while (result == "false"):
   ### Wait 5 seconds before checking again
   time.sleep(5)
   result = AdminApp.isAppReady('application1')
print("Starting application...")
使用 Jacl:
set result [$AdminApp isAppReady application1]
while {$result == "false"} {
   ### Wait 5 seconds before checking again
   after 5000
   set result [$AdminApp isAppReady application1]
}
puts "Starting application..."

如果系统未准备好,无法启动应用程序,那么系统可能正在展开应用程序二进制文件。 使用 getDeployStatus 命令来显示有关二进制文件展开状态的更多信息,如以下示例所示:

使用 Jython:
print AdminApp.getDeployStatus('application1')
使用 Jacl:
$AdminApp getDeployStatus application1

运行 getDeployStatus 命令(其中 application1DefaultApplication)将产生类似于以下内容的关于 DefaultApplication 的状态信息:

ADMA5071I: Distribution status check started for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown
ADMA5011I: The cleanup of the temp directory for application DefaultApplication is complete.
ADMA5072I: Distribution status check completed for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown