使用 wsadmin 脚本编制来修改 WAR 类装入器模式

您可以使用脚本编制和 wsadmin 工具修改应用程序的 WAR 类装入器模式。

开始之前

开始本任务前,wsadmin 工具必须正在运行。请参阅使用 wsadmin 脚本编制启动 wsadmin 脚本编制客户机主题以了解更多信息。

关于此任务

注意: 如果应用程序正在运行,那么更改应用程序设置将导致应用程序重新启动。在独立服务器上,应用程序在您保存更改后将重新启动。在多服务器产品上,应用程序将在您保存更改后重新启动,并且在安装应用程序的节点上,文件将同步。要控制对多服务器产品进行同步的时间,请取消选择控制台首选项页面上的将更改与节点同步

要修改应用程序的 WAR 类装入器模式,请完成以下步骤:

过程

  1. 设置对 deployment.xml 文档的引用。 例如:
    • 使用 Jacl:
      set deployments [$AdminConfig getid /Deployment:my_application/]

      示例输出:

      application_name(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Deployment_1276887608391)
    • 使用 Jython:
      deployments = AdminConfig.getid('/Deployment:my_application/')
    表 1. 部署配置值. 下表描述 getid 命令的元素。
    元素 定义
    set 是 Jacl 命令
    deployments 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    getid AdminConfig 命令
    部署 是属性
    my_application profile_root/config/cells/cell_name/applications/ 目录中的应用程序
  2. deployment.xml 文档内设置对 deployedObject 属性的引用,然后将其设置为 deployedObject 变量。 例如:
    • 使用 Jacl:
      set deploymentObject [$AdminConfig showAttribute $deployments deployedObject]

      示例输出:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)
    • 使用 Jython:
      deploymentObject = AdminConfig.showAttribute(deployments, 'deployedObject')
    表 2. 部署配置值. 下表描述此命令中的元素。
    元素 定义
    set 是 Jacl 命令
    deploymentObject 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    showAttribute AdminConfig 命令
    deployments deployment.xml 文档被分配到的变量
    deployedObject deployment.xml 文档内的属性
  3. 列示 deployedObject 属性的模块并将该列表设置为 myModules 变量。 例如:
    • 使用 Jacl:
      set myModules [lindex [$AdminConfig showAttribute $deploymentObject modules] 0]

      示例输出:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391) 
      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)
    • 使用 Jython:
      myModules = AdminConfig.showAttribute(deploymentObject, 'modules')
      myModules = myModules[1:len(myModules)-1].split(" ")
      print myModules

      示例输出:

      ['(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391)', 
      '(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)']
    表 3. 部署配置值. 下表描述此命令中的元素。
    元素 定义
    set 是 Jacl 命令
    myModules 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    showAttribute AdminConfig 命令
    deployedObject deployment.xml 文档内的属性
    modules deployment.xml 文档内的属性
  4. 查找 Web 模块并设置类装入器的模式。 例如:
    • 使用 Jacl:
      foreach module $myModules {
           if {[regexp WebModuleDeployment $module] == 1} {
              $AdminConfig modify $module {{classloaderMode mode}}}}
    • 使用 Jython:
      for module in myModules:
           if (module.find('WebModuleDeployment')!= -1):
              AdminConfig.modify(module, [['classloaderMode', 'mode']])
    表 4. 部署配置值. 下表描述此命令中的元素。
    元素 定义
    foreach 是 Jacl 命令
    for 是 Jython 命令
    module 是正在修改的对象
    $ 是使用其值替换变量名的 Jacl 运算符
    myModules 是变量名
    regexp 是一个函数,使用正则表达式在先前的命令内搜索
    module.find 是一个函数,使用正则表达式在先前的命令内搜索
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    modify AdminConfig 命令
    classloaderMode deployment.xml 文档内的属性
    mode 是您要为 WAR 模块设置的类装入器模式值。模式值是 PARENT_FIRST 或 PARENT_LAST。有关更多信息,请参阅关于类装入器的文档。
  5. 保存配置,例如:
    • 使用 Jacl:
      $AdminConfig save
    • 使用 Jython:
      AdminConfig.save()
  6. 使用 showall 命令来验证对属性值所作的更改。 例如:
    • 使用 Jacl:
      $AdminConfig showall $module
    • 使用 Jython:
      AdminConfig.showall(module)

      示例输出:

      {applicationDeployment (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)}
      
      {classloader (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Classloader_1276887608392)}
      {classloaderMode mode}
      {configs {}}
      {deploymentId 1}
      {startingWeight 10000}
      {targetMappings {(cells/cell_name/applications/application_nameear/deployments/
      application_name|deployment.xml#DeploymentTargetMapping_1276887608392)}}
      {uri WAR_file_name.war}

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_warclmode
文件名:txml_warclmode.html