使用应用程序属性文件来安装、更新和删除企业应用程序文件
您可以使用应用程序属性文件来在服务器或集群上安装企业应用程序文件,更新已部署的应用程序或模块,或者卸载已部署的应用程序或模块。企业应用程序文件必须符合 Java™ Platform, Enterprise Edition (Java EE) 规范。
开始之前
在应用程序服务器上安装企业应用程序文件之前,必须先根据需要组装模块。此外,还应配置目标应用程序服务器。作为配置服务器的一部分,确定是否可以将应用程序文件安装到部署目标。
启动 wsadmin 脚本编制工具。要使用 Jython 语言启动 wsadmin,请从部署目标概要文件的 bin 目录运行 wsadmin -lang Jython 命令。
关于此任务
使用应用程序属性文件,可以安装、更新或卸载企业应用程序或模块。
使用 wsadmin 运行管理命令以部署应用程序。
操作 | 过程 |
---|---|
create(安装) |
|
modify(更新) |
|
delete(卸载) |
|
create Property | 不适用 |
delete Property | 不适用 |
(可选)可以通过交互方式使用这些命令:
AdminTask.command_name('-interactive')
您可以将应用程序属性文件添加至受监控目录,而非手动运行 wsadmin 命令以应用该属性文件。本产品将自动运行 wsadmin 命令。请参阅“通过将属性文件添加至受监控目录来安装企业应用程序文件”。
如果要安装独立 Web 应用程序归档 (WAR) 或会话启动协议 (SIP) 归档 (SAR),请指定该 WAR 或 SAR 文件的上下文根。 上下文根与已定义的 Servlet 映射(包含在 WAR 文件中)共同组成用户访问该 Servlet 时需要输入的完整 URL。例如,如果上下文根是 /gettingstarted,并且 Servlet 映射是 MySession,那么 URL 是 http://host:port/gettingstarted/MySession。
本主题描述如何完成以下过程:
过程
- 在部署目标上安装企业应用程序。
- 创建用于确定应用程序和部署目标的属性文件。
打开编辑器,并创建属性文件(例如以下内容)以安装应用程序配置对象:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment= # Properties Name=hello TargetServer=!{serverName} TargetNode=!{nodeName} EarFileLocation=/temp/Hello.ear #TargetCluster=cluster1 # EnvironmentVariablesSection # # #Environment Variables cellName=myCell04 nodeName=myNode serverName=myServer
- 运行 applyConfigProperties 命令以安装应用程序。
运行 applyConfigProperties 命令将应用该属性文件。在此 Jython 示例中,可选的 -reportFileName 参数将生成名为 report.txt 的报告:
AdminTask.applyConfigProperties(['-propertiesFileName myObjectType.props -reportFileName report.txt '])
- 创建用于确定应用程序和部署目标的属性文件。
- 抽取已部署企业应用程序的属性。
运行 extractConfigProperties 命令以将已部署企业应用程序的配置属性和值抽取到属性文件:
AdminTask.extractConfigProperties('[-propertiesFileName myApp.props -configData Deployment=MyApplication]')
运行此 Jython 示例会产生名为 myApp.props 的文件,该文件列示名为 MyApplication 的应用程序配置对象的属性。可以使用抽取的属性文件来查看和编辑应用程序的属性。该属性文件的 MapModulesToServers 部分类似于以下内容:
# # SubSection 1.0.2 # MapModulesToServers Section. taskName and row0 should not be edited. row0 contains column names for the task. # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # #Properties # taskName=MapModulesToServers row2={"My Web Application" MyWebApplication.war,WEB-INF/web.xml WebSphere:cell=!{cellName}, node=!{nodeName},server=!{serverName} 23 moduletype.web "Web Module"} row1={"My Enterprise Java Bean" My.jar,META-INF/ejb-jar.xml WebSphere:cell=!{cellName},node=!{nodeName}, server=!{serverName} 20 moduletype.ejb "EJB Module"} mutables={false false true false false false} #readonly row0={module uri server ModuleVersion moduletype moduletypeDisplay} #readonly
缺省情况下,extractConfigProperties 命令产生的输出会显示安装任务的所有列(包括隐藏和非隐藏的列),任务数据值列示在独立的行中。mutables 行显示可编辑的列 (true) 及不可编辑的列 (false)。
要增强应用程序属性的输出,请运行带有 SimpleOutputFormat 选项的 AdminTask extractConfigProperties 命令。当该选项设置为 true 时,输出以 columnName=value 对的形式显示应用程序属性的非隐藏列。输出中不包括应用程序属性的隐藏列。增强的输出使您可以更方便地查找和编辑应用程序属性值。您可以使用已编辑的属性文件来安装或更新应用程序。以下示例指定 extractConfigProperties 中的 SimpleOutputFormat 选项:
AdminTask.extractConfigProperties('[-propertiesFileName myApp.props -configData Deployment=MyApplication -option [[SimpleOutputFormat true]]]')
使用 SimpleOutputFormat 选项时,抽取的应用程序属性文件的 MapModulesToServers 部分类似于以下内容:
# # SubSection 1.0.2 # MapModulesToServers Section. taskName and lines marked as "#readonly" should not be edited. # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # #Properties # taskName=MapModulesToServers row0={ module="My Enterprise Java Bean" #readonly uri=My.jar,META-INF/ejb-jar.xml #readonly server=WebSphere:cell=!{cellName},node=!{nodeName},server=!{serverName} } row1={ module="My Web Application" #readonly uri=MyWebApplication.war,WEB-INF/web.xml #readonly server=WebSphere:cell=!{cellName},node=!{nodeName},server=!{serverName} }
- 更新已部署的企业应用程序中的单个文件。
- 编辑应用程序属性文件,以使其指定要添加或更改的文件。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、操作类型(例如 operationType=add)和 contentType=file。以下示例会将 addMe.jsp 文件添加至名为 hello 的已部署应用程序:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=add contentType=file contentURI=test.war/com/ibm/addMe.jsp contentFile=c:/temp/addMe.jsp
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑应用程序属性文件,以使其指定要添加或更改的文件。
- 从已部署的企业应用程序移除单个文件。
- 编辑应用程序属性文件,以使其指定要移除的文件。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、operationType=delete 和 contentType=file。以下示例会从名为 hello 的已部署应用程序移除 addMe.jsp 文件:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=delete contentType=file contentURI=test.war/com/ibm/addMe.jsp
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑应用程序属性文件,以使其指定要移除的文件。
- 更新已部署的企业应用程序中的单个模块。
- 编辑应用程序属性文件,以使其指定要添加或更改的 Java EE 模块。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、操作类型(例如 operationType=add)和 contentType=moduleFile。以下示例会将 Increment.jar 文件添加至名为 hello 的已部署应用程序:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=add contentType=modulefile #contextRoot=”/mywebapp” # required for web module only contentURI=Increment.jar contentFile=c:/apps/app1/Increment.jar deployEJB=false
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑应用程序属性文件,以使其指定要添加或更改的 Java EE 模块。
- 从已部署的企业应用程序移除单个模块。
- 编辑应用程序属性文件,以使其指定要移除的 Java EE 模块。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、operationType=delete 和 contentType=moduleFile。以下示例会从名为 hello 的已部署应用程序移除 test.war 文件:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=delete contentType=moduleFile contentURI=test.war
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑应用程序属性文件,以使其指定要移除的 Java EE 模块。
- 替换、添加或删除已部署企业应用程序中的多个文件。 此选项指定通过上载压缩的文件来更新已安装应用程序的多个文件。根据压缩文件内容的不同,使用一次此选项就可以对已安装的应用程序替换文件、添加新文件和删除文件。压缩文件中的每个条目都被看作单个文件,而相对于压缩文件根的文件路径被视为该文件在已安装的应用程序中的相对路径。
- 要替换文件,在已压缩文件中的文件必须有与在已安装的应用程序中要更新的文件相同的相对路径。
- 要将新文件添加至已安装的应用程序,在已压缩文件中的文件必须有与已安装的应用程序中的文件不同的相对路径。
- 已安装的应用程序中文件的相对路径由两个部分并置组成并以 / 分隔:第一部分是模块的相对路径(如果该文件在模块内),第二部分是该文件与模块根之间的相对路径。
- 要从已安装的应用程序移除文件,使用在任何归档作用域中名为 META-INF/ibm-partialapp-delete.props 的文件在已压缩文件中指定元数据。ibm-partialapp-delete.props 文件必须是 ASCII 码文件,它列示要在该归档中删除的文件,每行一个条目。条目可以包含字符串模式,如识别多个文件的正则表达式。要删除的文件的文件路径必须相对于具有 META-INF/ibm-partialapp-delete.props 文件的归档路径。
- 编辑应用程序属性文件,以使其指定压缩文件。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、operationType=update 和 contentType=partialapp。以下示例将使用 myAppPartial.zip 压缩文件来更新名为 hello 的已部署应用程序:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=update contentType=partialapp contentFile= c:/temp/MyApp/myAppPartial.zip
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 替换整个已部署的企业应用程序。
此选项指定使用新的(已更新的)企业应用程序 .ear 文件替换已安装在部署目标上的应用程序。
- 编辑应用程序属性文件,以使其指定应用程序文件。
编辑应用程序配置对象的属性。在 Properties 部分中指定 Update=true、operationType=update 和 contentType=app。以下示例将替换名为 hello 的已部署应用程序的 newApp1.ear 文件。useDefaultBindings=true 属性指示产品为应用程序生成缺省绑定。
当更新了完整的应用程序时,卸载旧的应用程序并安装新的应用程序。在保存配置更改并随后进行配置更改同步时,将在要运行该应用程序的节点上展开应用程序文件。如果当更新应用程序时它正在节点上运行,那么停止应用程序、更新应用程序文件并且启动应用程序。# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello Update=true operationType=update contentType=app contentFile=c:/apps/app1/newApp1.ear useDefaultBindings=true
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑应用程序属性文件,以使其指定应用程序文件。
- 从部署目标中卸载应用程序。
可以通过以下两种方式其中的一种来卸载应用程序:
- 指定 CreateDeleteCommandProperties=true 并运行 deleteConfigProperties 命令。
- 编辑属性文件以使其确定应用程序但不再确定部署目标。例如,指定如以下所示的属性以卸载名为 hello 的应用程序配置对象:
# # Header # ResourceType=Application ImplementingResourceType=Application CreateDeleteCommandProperties=true ResourceId=Deployment=hello # # # Properties # Name=hello #
- 运行 deleteConfigProperties 命令以卸载应用程序。
AdminTask.deleteConfigProperties('[-propertiesFileName myApplication.props -reportFileName report.txt]')
- 编辑属性文件以使其确定应用程序但不再确定部署目标。例如,指定如以下所示的属性以卸载名为 hello 的应用程序配置对象:
- 指定 DELETE=true 并运行 applyConfigProperties 命令。
- 编辑属性文件以使其确定应用程序但不再确定部署目标。例如,指定如以下所示的属性以卸载名为 hello 的应用程序配置对象:
# # Header # ResourceType=Application ImplementingResourceType=Application DELETE=true ResourceId=Deployment=hello # Properties Name=hello
- 运行 applyConfigProperties 命令。
有关示例,请参阅安装步骤。
- 编辑属性文件以使其确定应用程序但不再确定部署目标。例如,指定如以下所示的属性以卸载名为 hello 的应用程序配置对象:
- 指定 CreateDeleteCommandProperties=true 并运行 deleteConfigProperties 命令。
- 编辑已部署应用程序的部署选项。
- 编辑属性文件,以使其指定新的或更改的部署选项。
例如,为名为 appl 的应用程序配置对象指定如以下所示的属性:
# # Header # ResourceType=Application ImplementingResourceType=Application ResourceId=Deployment=appl # # # Properties # taskName=AppDeploymentOptions row1={$(APP_INSTALL_ROOT)/$(CELL) AppDeploymentOption.Yes AppDeploymentOption.No AppDeploymentOption.No AppDeploymentOption.No "" off .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 "WASX.SERV1 [x0617.27]" AppDeploymentOption.No AppDeploymentOption.No} mutables={true true true true true true true true false true true} row0={installed.ear.destination distributeApp useMetaDataFromBinary createMBeansForResources reloadEnabled reloadInterval validateinstall filepermission buildVersion allowDispatchRemoteInclude allowServiceRemoteInclude} #readonly
row1 包含每个属性的当前值。要更改属性,请修改 row1 中的值。
mutables 指定给定属性是否可以更改。
row0 指定部署属性名称。
- 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑属性文件,以使其指定新的或更改的部署选项。
- 重新部署应用程序。
- 编辑属性文件,以使其根据需要指定部署选项。 例如,为名为 myApp 的应用程序配置对象指定如以下所示的属性。
- mutables 指定给定属性是否可以更改。
- row0 指定部署属性名称。
- row1 包含每个属性的当前值。要更改属性,请修改 row1 中的值。
# # Header MapModulesToServers # ResourceType=Application ImplementingResourceType=Application ResourceId=Deployment=!{applicationName} # # # Properties # taskName=MapModulesToServers mutables={false false true false false false} #readonly row0={module uri server ModuleVersion moduletype moduletypeDisplay} # readonly row1={“My Web Module” myWebModule.war,WEB-INF/web.xml WebSphere:cell=!{cellName},node=!{nodeName}, server=!{serverName} 14 moduletype.web "Web Module"} row2={"My EJB module" MyEjbModule.jar,META-INF/ejb-jar.xml WebSphere:cell=!{cellName},node=!{nodeName}, server=!{serverName} 13 moduletype.ejb "EJB Module"} # # # Header MapRolesToUsers # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=MapRolesToUsers row0={role role.everyone role.all.auth.user role.user role.group role.all.auth.realms role.user.access.ids role.group.access.ids} #readonly mutables={false true true true true true true true} #readonly row1={administrator AppDeploymentOption.No AppDeploymentOption.No "adminuser" "admingroup" AppDeploymentOption.No "" ""} # # Header BindJndiForEJBNonMessageBinding # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # #Properties # taskName=BindJndiForEJBNonMessageBinding row0={EJBModule EJB uri JNDI ModuleVersion localHomeJndi remoteHomeJndi} #readonly mutables={false false false true false true true} #readonly row1={"My EJB module" myEjb myEjbModule.jar,META-INF/ejb-jar.xml myEjb 20 "" “"} # # # Header MapEJBRefToEJB # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # #Properties # taskName=MapEJBRefToEJB row0={module EJB uri referenceBinding class JNDI ModuleVersion} #readonly mutables={false false false false false true false} #readonly row1={"My EJB module" myEJB MyEjbModule.jar,META-INF/ejb-jar.xml myEJB com.ibm.defaultapplication.Increment Increment 23} # # # Header DataSourceFor20EJBModules # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # #Properties # taskName=DataSourceFor20EJBModules row0={AppVersion EJBModule uri JNDI resAuth login.config.name auth.props dataSourceProps} #readonly mutables={false false false true true true true true} #readonly row1={13 "My EJB module" MyEjbModule.jar,META-INF/ejb-jar.xml MyDataSource cmpBinding.perConnectionFactory "" "" ""} # # # Header DataSourceFor20CMPBeans # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=DataSourceFor20CMPBeans row0={AppVersion EJBVersion EJBModule EJB uri JNDI resAuth login.config.name auth.props} #readonly mutables={false false false false false true true true true} #readonly row1={13 13 "My EJB module" MyEjb MyEjbModule.jar,META-INF/ejb-jar.xml myDataSource cmpBinding.perConnectionFactory "" ""} # # # Header MapWebModToVH # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=MapWebModToVH row0={webModule uri virtualHost} #readonly mutables={false false true} #readonly row1={"My Web Application" MyWebModule.war,WEB-INF/web.xml default_host} # # # Header CtxRootForWebMod # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=CtxRootForWebMod row0={webModule uri web.contextroot} #readonly mutables={false false true} #readonly row1={"My Web Application" MyWebModule.war,WEB-INF/web.xml /} # # # Header MapSharedLibForMod # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=MapSharedLibForMod row0={module uri sharedLibName} #readonly mutables={false false true} #readonly row2={"My Web Application" MyWebModule.war,WEB-INF/web.xml ""} row1={myApp META-INF/application.xml ""} # # # Header JSPReloadForWebMod # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=JSPReloadForWebMod row0={webModule uri jspReloadEnabled jspReloadInterval} #readonly mutables={false false true true} #readonly row1={"My Web Application" MyWebModule.war,WEB-INF/ibm-web-ext.xmi AppDeploymentOption.Yes 10} # # # Header SharedLibRelationship # ResourceType=Application ImplementingResourceType=Application ResourceId=Cell=!{cellName}:Deployment=!{applicationName} # # # Properties # taskName=SharedLibRelationship row0={module uri relationship compUnitName matchTarget origRelationship} #readonly mutables={false false true true true false} #readonly row2={"My Web Application" MyWebModule.war,WEB-INF/web.xml "" "" AppDeploymentOption.Yes ""} row1={myApp META-INF/application.xml "" "" AppDeploymentOption.Yes ""} # EnvironmentVariablesSection # # Environment Variables # cellName=myCell04 applicationName=myApp nodeName=myNode serverName=myServer
在此示例中,仅显示最常见的任务,例如 MapModulesToServer 和 CtxRootForWebMod。通过抽取现有应用程序的属性以及修改所抽取属性文件的内容以使其与应用程序环境匹配,可以获取示例中未包含的任务的属性。
支持的配置: 对于 IBM® 扩展文件和绑定文件,根据您使用的是 Java EE 5 之前的应用程序或模块还是 Java EE 5 或之后的应用程序或模块,.xmi 或 .xml 文件扩展名有所不同。IBM 扩展文件或绑定文件将命名为 ibm-*-ext.xmi 或 ibm-*-bnd.xmi,其中 * 是扩展文件或绑定文件的类型,例如,app、application、ejb-jar 或 web。存在下列条件:
- 对于使用 V5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须是 .xmi。
- 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须是 .xml。如果应用程序或模块中包含 .xmi 文件,那么产品将忽略这些 .xmi 文件。
然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi 和 ibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。
sptcfg - 运行 applyConfigProperties 命令以更新应用程序。
运行 applyConfigProperties 命令将应用该属性文件。有关示例,请参阅安装步骤。
- 编辑属性文件,以使其根据需要指定部署选项。
结果
可以使用属性文件来配置和管理应用程序对象及其属性。
下一步做什么
将更改保存到配置。
子主题
使用应用程序部署属性文件
您可以使用属性文件来修改企业应用程序部署属性。企业应用程序必须符合 Java Platform, Enterprise Edition (Java EE) 规范。


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