![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
通过将属性文件添加至受监控目录来安装企业应用程序文件
您可以使用应用程序属性文件来在服务器或集群上安装企业应用程序文件,更新已部署的应用程序或模块,或者卸载已部署的应用程序或模块。将属性文件拖放或复制到受监控目录,产品就会执行属性文件中所述的部署操作。可以使用属性文件安装、更新或卸载的企业应用程序文件包括企业归档 (EAR)、Web 归档 (WAR)、Java™ 归档 (JAR) 和会话启动协议 (SIP) 归档 (SAR) 文件。企业应用程序文件必须符合 Java Platform, Enterprise Edition (Java EE) 规范。
开始之前
开发和组装 EAR、JAR、WAR 或 SAR 文件。您可以使用受支持的组装工具(例如 IBM® Rational® Application Developer for WebSphere® Software 产品)来指定绑定以及组装文件。
与“通过将企业应用程序文件添加至受监控目录来安装企业应用程序文件”中所述的过程(该过程不会更改现有 Java 命名和目录 (JNDI) 以及其他应用程序绑定)不同,您可以在属性文件中设置绑定。
缺省情况下,未启用受监控目录部署。您必须先启用受监控目录部署,然后才能使用它。请参阅设置受监控目录部署值。
关于此任务
您可以通过将应用程序属性文件拖放或复制到 monitoredDeployableApps/deploymentProperties 受监控目录,来将 EAR、JAR、WAR 或 SAR 文件部署到应用程序服务器或集群。缺省情况下,产品会以不超过每 5 秒钟一次的频率,扫描受监控目录以取得新的属性文件。在受监控目录中找到新的属性文件后,产品会自动运行 wsadmin applyConfigProperties 命令,在应用程序服务器或集群上安装应用程序或模块,然后启动应用程序或模块。
您不需要启动 wsadmin,也不需要输入任何命令,就可以部署应用程序或模块。只需将属性文件添加至受监控目录即可。产品会自动运行 wsadmin applyConfigProperties 命令。
您也可以使用属性文件来更新或删除已部署的应用程序或模块。服务器或集群必须正在运行,这样产品才能检测到对其受监控目录中文件的更改。
这些步骤假定您使用图形文件浏览器来拖放或复制属性文件。或者,您可以使用操作系统命令来将文件复制到 monitoredDeployableApps/deploymentProperties 受监控目录。
过程
结果
产品会将与文件同名的目录添加至概要文件的 installedApps/cell_name 目录。
此外,产品会将应用程序部署的相关消息,写入 app_server_root/logs/server_name 目录的 SystemOut.log 文件中。这些消息以 CWLDD 消息关键字开头。
消息指出产品已部署应用程序文件,并且该应用程序正在运行。
对于 Deployment Manager 受监控目录上的安装,如果 Node Agent 或服务器未在运行,那么产品不会自动启动应用程序或模块。如果 Node Agent 已停止,那么产品会在 Deployment Manager 级别安装应用程序或模块,但不会使更改与节点同步,并且不会启动应用程序或模块。更改将在下一次运行代理程序时在节点处进行,并且会进行节点同步。如果服务器已停止但 Node Agent 正在运行,那么产品会安装应用程序或模块并使更改与节点同步,但不会启动服务器。
示例
以下示例属性文件提供了一些模板,可让您进行修改以部署应用程序:
- 在部署目标上安装企业应用程序
- 使用旧应用程序输出格式安装具有各种任务选项的企业应用程序
- 使用简单输出格式安装具有各种任务选项的企业应用程序
- 更新已部署企业应用程序中的单个文件
- 从已部署企业应用程序中移除单个文件
- 更新已部署企业应用程序中的单个模块
- 从已部署企业应用程序中移除单个模块
- 替换、添加或删除已部署企业应用程序中的多个文件
- 替换整个已部署企业应用程序
- 从部署目标中卸载应用程序
- 编辑已部署应用程序的部署选项
- 编辑 Web 模块部署属性
在部署目标上安装企业应用程序
属性 | 描述 |
---|---|
Name | 指定要安装的应用程序的名称。 |
TargetServer | 指定要安装应用程序的服务器的名称。 |
TargetNode | 指定要安装应用程序的节点的名称。 |
EarFileLocation | 指定企业归档(EAR 文件)的位置。请提供标准路径名称。 |
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloTargetServer=!{serverName}
TargetNode=!{nodeName}
EarFileLocation=/temp/HelloWorld.ear
#TargetCluster=cluster1
EnvironmentVariablesSection
#
#
#Environment Variables
cellName=myCell
nodeName=myNode
serverName=myServer
使用旧应用程序输出格式来安装具有各种任务选项的企业应用程序
该示例属性会安装具有任务选项的企业应用程序。该属性文件会显示安装任务的所有列(包括隐藏和非隐藏的列),任务数据值列示在独立的行中。mutables 行显示可编辑的列 (true) 及不可编辑的列 (false)。
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=!{applicationName}
EarFileLocation=c:/temp/HelloWorld.ear
#
# 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=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"}
#
# SubSection 1.0.3 # MapRolesToUsers Section. taskName and
# row0 should not be edited. row0 contains column names for
# the tasks.
#ResourceType=Application
ImplementingResourceType=Application
ResourceId=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 "" ""}
#
# SubSection 1.0.4 # BindJndiForEJBNonMessageBinding
# Section. taskName and row0 should not be edited. row0
# contains column names for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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 "" “"}
#
# SubSection 1.0.5 # MapEJBRefToEJB Section. taskName and
# row0 should not be edited. row0 contains column names for
# the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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}
#
# SubSection 1.0.6 # DataSourceFor20EJBModules Section.
# taskName and row0 should not be edited. row0 contains
# column names for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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 "" ""
""}
#
# SubSection 1.0.7 # DataSourceFor20CMPBeans Section.
# taskName and row0 should not be edited. row0 contains
# column names for the task.#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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 "" ""}
#
# SubSection 1.0.8 # MapWebModToVH Section. taskName and
# row0 should not be edited. row0 contains column names for
# the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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}
#
#
# SubSection 1.0.9 # CtxRootForWebMod Section. taskName and
# row0 should not be edited. row0 contains column names for
# the task.#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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
/}
#
# SubSection 1.0.10 # MapSharedLibForMod Section.
taskName
# and row0 should not be edited. row0 contains column names
# for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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 ""}#
#
# SubSection 1.0.11 # JSPReloadForWebMod Section. taskName
# and row0 should not be edited. row0 contains column names
# for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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}
#
#
# SubSection 1.0.35 # SharedLibRelationship Section.
# taskName and row0 should not be edited. row0 contains
# column names for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=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
#
applicationName=myApp cellName=myCell
nodeName=myNode
serverName=myServer
使用简单输出格式来安装具有各种任务选项的企业应用程序
该示例属性会安装具有任务选项的企业应用程序。该示例显示已利用 SimpleOutputFormat 选项抽取的应用程序属性。利用此选项,属性文件会以 columnName=value 对的形式显示应用程序属性的非隐藏列。输出中不包括应用程序属性的隐藏列。您将发现,利用 SimpleOutputFormat 选项抽取应用程序属性文件会产生易于阅读和编辑的格式。
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=!{applicationName}
EarFileLocation=c:/temp/HelloWorld.ear
#
# SubSection 1.0.2 # MapModulesToServers Section. taskName
# and lines marked as "#readonly" should not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=MapModulesToServers
row0={ module="My EJB Module" #readonly
uri=MyEjbModule.jar,META-INF/ejb-jar.xml #readonly
server=WebSphere:cell=!{cellName},node=!{nodeName},
server=!{serverName} }
row1={ module="My Web Module" #readonly
uri=myWebModule.war,WEB-INF/web.xml #readonly
server=WebSphere:cell=!{cellName},node=!{nodeName},
server=!{serverName} }
#
# SubSection 1.0.3 # MapRolesToUsers Section. taskName and
# lines marked as "#readonly" should not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=MapRolesToUsers
row0={ role="All Role" #readonly
role.everyone=AppDeploymentOption.No
role.all.auth.user=AppDeploymentOption.Yes
role.user=""
role.group=""
role.all.auth.realms=AppDeploymentOption.No
role.user.access.ids=""
role.group.access.ids="" }
#
# SubSection 1.0.4 # BindJndiForEJBNonMessageBinding
# Section. taskName and lines marked as "#readonly" should
# not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
#Properties
#
taskName=BindJndiForEJBNonMessageBinding
row0={ EJBModule="My EJB Module" #readonly
EJB=myEjb #readonly
uri=myEjbModule.jar,META-INF/ejb-jar.xml #readonly
JNDI=myEjb
localHomeJndi=""
remoteHomeJndi="" }
#
# SubSection 1.0.5 # MapEJBRefToEJB Section. taskName and
# lines marked as "#readonly" should not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
#Properties
#
taskName=MapEJBRefToEJB
row0={ module="My EJB Module" #readonly
EJB=myEJB #readonly
uri=MyejbModule.jar,META-INF/ejb-jar.xml #readonly
referenceBinding=myEJB #readonly
class=com.ibm.defaultapplication.Increment #readonly
JNDI=myejb }
#
# SubSection 1.0.6 # DataSourceFor20EJBModules Section.
# taskName and lines marked as "#readonly" should not be
# edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
#
#Properties
#
taskName=DataSourceFor20EJBModules
row0={ EJBModule="My EJB Module"
#readonly
uri=myEjbModule.jar,META-INF/ejb-jar.xml #readonly
JNDI=MyDatasource
resAuth=cmpBinding.perConnectionFactory
login.config.name=""
auth.props=""
dataSourceProps="" }
#
# SubSection 1.0.7 # DataSourceFor20CMPBeans Section.
# taskName and lines marked as "#readonly" should not be
# edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=DataSourceFor20CMPBeans
row0={ EJBModule="My EJB Module” #readonly
EJB=MyEjb #readonly
uri=MyEjbModule.jar,META-INF/ejb-jar.xml #readonly
JNDI=MyDatasource
resAuth=cmpBinding.perConnectionFactory
login.config.name=""
auth.props="" }
#
# SubSection 1.0.8 # MapWebModToVH Section. taskName and
# lines marked as "#readonly" should not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
# Properties
#
taskName=MapWebModToVH
row0={ webModule="My Web Application" #readonly
uri=myWebModule.war,WEB-INF/web.xml
#readonly
virtualHost=default_host }
#
# SubSection 1.0.9 # CtxRootForWebMod Section. taskName and
# lines marked as "#readonly" should not be edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
# Properties
#
taskName=CtxRootForWebMod
row0={ webModule="My Web Application" #readonly
uri=myWebModule.war,WEB-INF/web.xml
#readonly
web.contextroot=/ }
#
# SubSection 1.0.10 # MapSharedLibForMod Section.
# taskName and lines marked as "#readonly" should not be
# edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=MapSharedLibForMod
row0={ module=myApp” #readonly
uri=META-INF/application.xml #readonly
sharedLibName="" }
row1={ module="My Web Application" #readonly
uri=MyWebModule.war,WEB-INF/web.xml #readonly
sharedLibName="" }
#
# SubSection 1.0.11 # JSPReloadForWebMod Section. taskName
# and lines marked as "#readonly" should not be
# edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=JSPReloadForWebMod
row0={ webModule="My Web Application" #readonly
uri=MyWebModule.war,WEB-INF/web.xml
#readonly
jspReloadEnabled=AppDeploymentOption.Yes
jspReloadInterval=10 }
#
# SubSection 1.0.35 # SharedLibRelationship Section.
# taskName and lines marked as "#readonly" should not be
# edited.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# Properties
#
taskName=SharedLibRelationship
row0={ module=myApp #readonly
uri=META-INF/application.xml #readonly
relationship=""
matchTarget=AppDeploymentOption.Yes }
row1={ module="My Web Application" #readonly
uri=MyWebModule.war,WEB-INF/web.xml
#readonly
relationship=""
matchTarget=AppDeploymentOption.Yes }
EnvironmentVariablesSection
#
# Environment Variables
#
applicationName=myApp cellName=myCell
nodeName=myNode
serverName=myServer
更新已部署的企业应用程序中的单个文件
该示例属性会将单个文件添加至已部署的应用程序:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=add
contentType=file
contentURI=test.war/com/ibm/addMe.jspcontentFile=/temp/addMe.jsp
从已部署的企业应用程序中移除单个文件
示例属性会从已部署应用程序中删除单个文件:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=delete
contentType=file
contentURI=test.war/com/ibm/addMe.jsp
更新已部署的企业应用程序中的单个模块
该示例属性会将单个模块添加至已部署的应用程序:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=add
contentType=moduleFile
#contextRoot=”/mywebapp” # required for web module only
contentURI=Increment.jar
contentFile=/apps/app1/Increment.jar
deployEJB=false
从已部署的企业应用程序中移除单个模块
该示例属性会从已部署应用程序中删除单个模块:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=delete
contentType=moduleFile
contentURI=test.war
替换、添加或删除已部署的企业应用程序中的多个文件
此选项指定通过上载压缩的文件来更新已安装应用程序的多个文件。根据压缩文件内容的不同,使用一次此选项就可以对已安装的应用程序替换文件、添加新文件和删除文件。压缩文件中的每个条目都被看作单个文件,而相对于压缩文件根的文件路径被视为该文件在已安装的应用程序中的相对路径。
要替换文件,在已压缩文件中的文件必须有与在已安装的应用程序中要更新的文件相同的相对路径。
要将新文件添加至已安装的应用程序,在已压缩文件中的文件必须有与已安装的应用程序中的文件不同的相对路径。
已安装的应用程序中文件的相对路径由两个部分并置组成并用正斜杠 / 分隔:第一部分是模块(如果文件在模块内)的相对路径,第二部分是模块根中文件的相对路径。
要从已安装的应用程序移除文件,使用在任何归档作用域中名为 META-INF/ibm-partialapp-delete.props 的文件在已压缩文件中指定元数据。ibm-partialapp-delete.props 文件必须是 ASCII 码文件,它列示要在该归档中删除的文件,每行一个条目。条目可以包含字符串模式,如识别多个文件的正则表达式。要删除的文件的文件路径必须相对于具有 META-INF/ibm-partialapp-delete.props 文件的归档路径。
有关要包括在压缩文件中的元数据 .props 文件的更多信息,请参阅“准备应用程序更新设置”中的“替换、添加或删除多个文件”部分。
该示例属性使用 myAppPartial.zip 压缩文件来更新名为 hello 的已部署应用程序:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=update
contentType=partialapp
contentFile=/temp/MyApp/myAppPartial.zip
替换已部署的整个企业应用程序
该示例属性更新整个已部署的应用程序:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=helloUpdate=true
operationType=update
contentType=app
contentFile=/apps/app1/newApp1.ear
useDefaultBindings=true
从部署目标中卸载应用程序
该示例属性会卸载已部署应用程序:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
DELETE=true
# Properties
Name=hello
编辑已部署的应用程序的部署选项
示例属性会更新已部署应用程序的部署选项:
#
# Header
#
ResourceType=Application
ImplementingResourceType=Application
# Properties
Name=!{applicationName}
#
# SubSection 1.0.1 # AppDeploymentOptions Section. taskName
# and row0 should not be edited. row0 contains column names
# for the task.
#
ResourceType=Application
ImplementingResourceType=Application
ResourceId=Deployment=!{applicationName}
#
#
# 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
#
EnvironmentVariablesSection
#
#
#Environment Variables
applicationName=newhello
编辑 Web 模块部署属性
该示例属性会编辑 Web 模块的部署属性:
#
# WebModuleDeployment
#
ResourceType=WebModuleDeployment
ImplementingResourceType=Application
ResourceId=Cell=!{cellName}:Deployment=!{applicationName}:ApplicationDeployment=
:WebModuleDeployment=uri#web.war
#
#Properties
#
startingWeight=90000 #integer,required,default(1)
deploymentId=1 #required
classloaderMode=PARENT_FIRST ENUM(PARENT_FIRST|PARENT_LAST),default(PARENT_FIRST)
altDD=null
uri=web.war #required
#applicationDeployment=Cell=!{cellName}:Deployment=!{applicationName}:ApplicationDeployment=
#ObjectName(ApplicationDeployment)
EnvironmentVariablesSection
#
#
#Environment Variables
cellName=myCell
applicationName=myApp
下一步做什么
如果属性文件部署应用程序或模块,请测试所部署的应用程序或模块。例如,在 Web 浏览器中输入所部署应用程序的 URL 并检查该应用程序的执行情况。
如果部署失败,请参阅 SystemOut.log 文件中的消息,修正错误条件,然后将属性文件重新添加至受监控目录。