WebSphere 变量

WebSphere 变量是“名称/值”对,他们为任何用于配置产品的字符串数据类型属性提供设置。 定义变量之后,可以在任何其他接受字符串值的产品配置字段的字段中指定对该变量指定的符号名称。

WebSphere 变量可用来配置下列各项:
  • WebSphere® Application Server 路径名,例如 JAVA_HOMEAPP_INSTALL_ROOT
  • extendedDocumentRoot JSP 或文件服务属性的路径值。 此功能允许您将应用程序添加到集群环境中的每个节点,而无需修改每个节点上该应用程序的 ibm-web-ext.xmi 文件。
    受支持的配置: 对于 IBM® 扩展和绑定文件,根据您使用的是Java™ EE 5 之前的应用程序或模块,还是 Java EE 5 或更高版本的应用程序或模块, .xmi.xml 文件扩展名有所不同。 IBM 扩展或绑定文件名为 ibm-*-ext.xmiibm-*-bnd.xmi ,其中 * 是扩展或绑定文件的类型,例如 appapplicationejb-jarweb。 存在下列条件:
    • 对于使用版本 5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须为 .xmi
    • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须为 .xml。 如果应用程序或模块随附 .xmi 文件,那么产品会忽略 .xmi 文件。

    但是, Java EE 5 或更高版本的模块可以存在于包含Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中。

    ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

  • 某些单元范围的定制值
定义变量时,将对其指定范围。 范围是该变量所适用于的产品网络位置范围。
  • 具有节点级范围的变量仅适用于该节点以及该节点上的服务器。 如果节点级变量与单元范围变量同名,那么节点级变量的值优先。
  • 服务器变量仅适用于一个服务器进程。 服务器变量优先于在更高级别定义的同名变量。

配置属性的值可以包含对一个或多个变量的引用。 此类属性的语法是变量的名称,包含在一对花括号 { } 或一对括号 () 中。 在任何一种情况下,变量都以美元符号表示。

字符串配置属性值可以由下列各项组成:
  • 字符串文字,包括空值和空字符串
  • 变量引用,每一个都包含一个或多个间接级别
  • 嵌套变量引用。
  • 非 null 和非空字符串文字、变量引用以及嵌套变量引用的任意组合。

[Windows]对于 Microsoft Windows 操作系统,指定的文件路径具有前缀 wth /Program Files

表 1. WebSphere 变量和属性 下表演示了所有可能的组合。
配置属性由下列各项组成: 配置属性值 变量名称 第二个变量值 第三个变量值 第四个变量值 扩展的配置属性值
字符串字面值 /IBM/WebSphere/AppServer 不适用 不适用 不适用 不适用 /IBM/WebSphere/AppServer
变量引用 $(WAS_ INSTALL_ ROOT) WAS_ INSTALL_ ROOT /IBM/WebSphere/AppServer 不适用 不适用 /IBM/WebSphere/AppServer
带有字符串文字的变量引用 $(USER_ INSTALL_ ROOT)/temp USER_ INSTALL_ ROOT 不适用 不适用 /IBM/WebSphere/AppServer/profiles/AppSrv01 /IBM/WebSphere/AppServer/profiles/AppSrv01/temp
带有字符串文字的间接变量引用 $(WAS_ INSTALL_ ROOT)/lib WAS_ INSTALL_ ROOT $(MY_INSTALL_ ROOT) MY_INSTALL_ ROOT 不适用 不适用
带有字符串文字的嵌套变量引用(示例 1) $(${INSTALL_ TYPE}_ INSTALL_ ROOT)/lib INSTALL_ TYPE 用户 USER_INSTALL_ ROOT /IBM/WebSphere/AppServer/profiles/AppSrv01 /IBM/WebSphere/AppServer/profiles/AppSrv01/lib
带有字符串文字的嵌套变量引用(示例 2) $(${INSTALL_ TYPE}_ INSTALL_ ROOT)/lib INSTALL_ TYPE WAS WAS_INSTALL_ ROOT /IBM/WebSphere/AppServer/AppServer /IBM/WebSphere/AppServer/AppServer/lib

在配置过程中,每当遇到作为配置属性值的变量时,都会将该变量展开。 变量展开是这样的过程:以递归方式将变量引用替换为变量值,直到只剩一个字符串文字作为配置属性值为止。 如果展开过程遇到未正确定义的变量,那么将停止展开该变量,并且将发出 VariableExpansionException 异常。 产品配置过程将继续进行。 但是,可能会因为未正确确定此配置属性的值而发生处理错误。

避免麻烦: 不支持由美元符号和单字母变量名组成的变量扩展语法,其中不包含任何括在花括号或圆括号内的变量名。 所有 WebSphere 变量引用都必须括在配对的圆括号或花括号中,即使它是单个字母也是如此。 该语法要求对美元符进行转义以避免二义性。
表 2. 文字美元符号 为了向后兼容,仍支持对文字美元符进行转义,并且将按下表指示的方式来解释文字美元符。
输入值 扩展后的值
$ $
$$ $
$$$ $$
$$$$ $$
$$$$$ $$$