使用 wsadmin 脚本编制来修改 WAR 类装入器模式
您可以使用脚本编制和 wsadmin 工具修改应用程序的 WAR 类装入器模式。
开始之前
开始本任务前,wsadmin 工具必须正在运行。请参阅使用 wsadmin 脚本编制启动 wsadmin 脚本编制客户机主题以了解更多信息。
关于此任务
注意: 如果应用程序正在运行,那么更改应用程序设置将导致应用程序重新启动。在独立服务器上,应用程序在您保存更改后将重新启动。在多服务器产品上,应用程序将在您保存更改后重新启动,并且在安装应用程序的节点上,文件将同步。要控制对多服务器产品进行同步的时间,请取消选择控制台首选项页面上的将更改与节点同步。
要修改应用程序的 WAR 类装入器模式,请完成以下步骤:
过程
- 设置对 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/ 目录中的应用程序 - 使用 Jacl:
- 在 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 文档内的属性 - 使用 Jacl:
- 列示 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 文档内的属性 - 使用 Jacl:
- 查找 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。有关更多信息,请参阅关于类装入器的文档。 - 使用 Jacl:
- 保存配置,例如:
- 使用 Jacl:
$AdminConfig save
- 使用 Jython:
AdminConfig.save()
- 使用 Jacl:
- 使用 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}
- 使用 Jacl:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_warclmode
文件名:txml_warclmode.html