WebLogic 脚本工具

     上一页  下一页    在新窗口中打开目录     
在此处开始内容

使用 WebLogic 脚本工具

以下部分描述了 WebLogic 脚本工具:

 


什么是 WebLogic 脚本工具?

WebLogic 脚本工具 (WLST) 是一个命令行脚本界面,系统管理员和操作员可以使用它来监视和管理 WebLogic Server 实例和域。WLST 脚本环境基于 Java 脚本解释器 Jython。除 WebLogic 脚本功能外,还可以使用解释语言(包括本地变量、条件变量以及流控制语句)的常用功能。WebLogic Server 开发人员和管理员可以按照 Jython 语言语法扩展 WebLogic 脚本语言,以满足其环境需要。请参阅 http://www.jython.org

WLST 可以做什么?

使用 WLST 可以执行下列任务:

WLST 功能包括下列 WebLogic Server 命令行实用工具的功能:weblogic.Admin 实用工具,用于询问 MBean 和配置 WebLogic Server 实例(不赞成在此版本的 WebLogic Server 中使用)、wlconfig Ant 任务工具,用于对 WebLogic Server 配置进行更改,以及 weblogic.Deployer 实用工具,用于部署应用程序。有关这些命令行实用工具的详细信息,请参阅:

通过交替使用 WLST、命令行实用工具和管理控制台,可以创建、配置和管理域。选择何种方法取决于您更喜欢使用图形界面还是命令行界面,同时也取决于是否可以通过使用脚本使任务自动化。请参阅脚本模式

WLST 如何工作?

可以使用脚本工具联机版(连接到正在运行的管理服务器实例或受管服务器实例)和脱机版(断开与正在运行的服务器的连接)。有关 WLST 联机版和脱机版命令的信息,请参阅 WLST 联机版和脱机版命令概要

使用 WLST 联机版

WLST 联机版使访问通过 JMX 进行管理的受管 Bean (MBean) 和 Java 对象(这些对象为底层资源提供了管理接口)变得简便。WLST 是 JMX 客户端,所有使用 WLST 联机版执行的任务也都可以使用 JMX 以编程方式执行。

有关使用 JMX 管理 WebLogic Server 资源的信息,请参阅使用 JMX 开发自定义管理实用工具

如果 WLST 已连接到管理服务器实例,则使用脚本工具可以导航和询问 MBean,并且向服务器提供配置数据。如果 WLST 已连接到受管服务器实例,则其功能仅限于浏览 MBean 层次。

无法使用 WLST 更改受管服务器上的 MBean 的值时,可以使用管理 API 进行更改。BEA Systems 建议仅更改管理服务器上的配置 MBean 的值。更改受管服务器上 MBean 的值会导致域的配置不一致。

使用 WLST 脱机版

通过使用 WLST 脱机版,可以新建域或更新现有域,而无需连接到正在运行的 WebLogic Server - 支持与 Configuration Wizard 相同的功能)。

WLST 脱机版仅提供对保留的配置信息的访问。您可以创建新的配置信息,以及检索和更改保存在域配置文件(位于 config 目录中,例如 config.xml)或使用 Template Builder 创建的域模板 JAR 中的现有配置信息。

注意: 因为通过 WLST 脱机版,您只能访问和更新配置文件中出现的配置对象,所以若要针对尚未以 XML 元素保存在配置文件中的配置对象查看和/或更改特性值,必须首先创建配置对象。

 


操作模式

WLST 是命令行解释器,它解释命令的方式可以是交互式的,即在命令提示下一次只提供一条命令;也可以是批处理式的,即以文件(脚本)或嵌入 Java 代码中批量提供。操作模式给出发出 WLST 命令的方法:

交互模式

在交互模式下,可以在命令提示下输入命令并查看响应,对于在生成脚本前了解工具、原型验证命令语法和验证配置选项非常有用。以交互方式使用 WLST 对于在进行关键配置更改后获取即时反馈尤其有用。WLST 脚本外壳可维护与 WebLogic Server 实例的持久性连接。因为在整个用户会话期间都在维护持久性连接,所以可以捕获针对服务器执行的多个步骤。请参阅记录用户交互

另外,为 WebLogic Server 实例输入的每个命令都使用已建立的同一连接,因此在执行命令时,不需要用户重新进行身份验证,也不需要单独的 JVM。

脚本模式

脚本就像外壳脚本一样,可以调用一系列 WLST 命令,而无需您输入命令。脚本包含文件扩展名为 .py 的文本文件中的 WLST 命令,即 filename.py。可以使用包含 Jython 命令的脚本文件运行脚本。请参阅运行脚本

通过使用 WLST 脚本,可以:

清单 2-1 中,WLST 会连接到正在运行的管理服务器实例、创建 10 台受管服务器和两个群集,并向群集分配服务器。

在运行某个脚本前,编辑此脚本以包含管理服务器的用户名、密码和 URL,然后启动此服务器。请参阅运行脚本

清单 2-1 创建群集域
from java.util import *
from javax.management import *
import javax.management.Attribute
print 'starting the script ....'
connect('username','password','t3://localhost:7001')
clusters = "cluster1","cluster2"
ms1 = {'managed1':7701,'managed2':7702,'managed3':7703, 'managed4':7704, 'managed5':7705}
ms2 = {'managed6':7706,'managed7':7707,'managed8':7708, 'managed9':7709, 'managed10':7710}
clustHM = HashMap()
edit()
startEdit()
for c in clusters:
  print 'creating cluster '+c
  clu = create(c,'Cluster')
  clustHM.put(c,clu)
cd('..\..')
clus1 = clustHM.get(clusters[0]) 
clus2 = clustHM.get(clusters[1])
for m, lp in ms1.items():
  managedServer = create(m,'Server')
  print 'creating managed server '+m
  managedServer.setListenPort(lp)
  managedServer.setCluster(clus1)
for m1, lp1 in ms2.items():
  managedServer = create(m1,'Server')
  print 'creating managed server '+m1
  managedServer.setListenPort(lp1)
  managedServer.setCluster(clus2)
save()
activate(block="true")
disconnect()
print 'End of script ...'
exit()

嵌入式模式

在嵌入式模式下,可以在 Java 代码中实例化 WLST 解释器的实例,然后使用此实例运行 WLST 命令和脚本。在交互模式和脚本模式中使用的所有 WLST 命令和变量都可以在嵌入式模式下运行。

清单 2-2 说明了如何实例化 WLST 解释器的实例,如何使用此实例连接到正在运行的服务器、如何创建两台服务器并将这两台服务器分配给群集。

清单 2-2 运行 Java 类的 WLST
package wlst;
import java.util.*;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
/**
 * 将 WLST 连接到运行服务器的简单嵌入式 WLST 示例,
 * 创建两个服务器,并将它们分配到新建的群集,然后退出。
 * <p>标题: EmbeddedWLST.java</p>
 * <p>版权: 版权所有 (C) 2004</p>
 * <p>公司: BEA Systems</p>
 * @作者 Satya Ghattu (sghattu@bea.com)
 */
public class EmbeddedWLST 
{
  static InteractiveInterpreter interpreter = null;
  EmbeddedWLST() {
    interpreter = new WLSTInterpreter();
  }
private static void connect() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("connect('weblogic','weblogic')");
    interpreter.exec(buffer.toString());
  }
private static void createServers() {
    StringBuffer buf = new StringBuffer();
    buf.append(startTransaction());
    buf.append("man1=create('msEmbedded1','Server')\n");
    buf.append("man2=create('msEmbedded2','Server')\n");
    buf.append("clus=create('clusterEmbedded','Cluster')\n");
    buf.append("man1.setListenPort(8001)\n");
    buf.append("man2.setListenPort(9001)\n");
    buf.append("man1.setCluster(clus)\n");
    buf.append("man2.setCluster(clus)\n");
    buf.append(endTransaction());
    buf.append("print `Script ran successfully ...'\n");
    interpreter.exec(buf.toString());
  }
private static String startTransaction() {
    StringBuffer buf = new StringBuffer();
    buf.append("edit()\n");
    buf.append("startEdit()\n");
    return buf.toString();
  }
private static String endTransaction() {
    StringBuffer buf = new StringBuffer();
    buf.append("save()\n");
    buf.append("activate(block='true')\n");
    return buf.toString();
  }
  public static void main(String[] args) {
    new EmbeddedWLST();
    connect();
    createServers();
  }
}

 


使用 WLST 的主要步骤

以下部分概括了设置和使用 WLST 的步骤:

设置环境

要设置 WLST 环境,请执行下列操作:

  1. 安装并配置 WebLogic Server 软件,如 WebLogic Server Installation Guide 中所述。
  2. 将 WebLogic Server 类添加到 CLASSPATH 环境变量,将 WL_HOME\server\bin 添加到 PATH 环境变量,其中 WL_HOME 指 WebLogic Server 的顶级安装目录。
  3. 可以使用 WL_HOME\server\bin\setWLSEnv 脚本设置这两个变量。

    在 Windows 上,“开始”菜单上的快捷方式可设置环境变量并调用 WLST(“Tools”箭头符号“WebLogic Scripting Tool”)。

调用 WLST

要调用 WLST,请执行下列操作:

  1. 如果要通过位于使用示范 SSL 密钥和证书的服务器上的 SSL 监听端口连接到 WebLogic Server 实例,请使用下列命令调用 WLST:
  2. java -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST

    否则,在命令提示下输入下列命令之一:

    • java weblogic.WLST
    • java weblogic.WLST -loadProperties propertyFilename
    • 注意: 可以使用 -loadProperties 选项加载某个文件中的属性值,并使这些值在 WLST 会话中可用。此选项的用法与 loadProperties 命令的用法类似。有关详细信息,请参阅 loadProperties

      将出现欢迎消息和 WLST 提示:

      wls:/(offline)>

  3. 要使用 WLST 脱机版,请在 WLST 提示下输入命令、设置变量或运行脚本。
  4. 有关详细信息,请参阅使用 WLST 脱机版创建和配置 WebLogic 域

    要使用 WLST 联机版,请启动 WebLogic Server 实例(请参阅启动和停止服务器),然后使用 connect 命令将 WLST 连接到服务器。

    wls:/(offline)> connect('username','password','t3s://localhost:7002')
    Connecting to weblogic server instance running at t3s://localhost:7002 as username weblogic ...
    Successfully connected to Admin Server 'myserver' that belongs to domain 'mydomain'.

    wls:/mydomain/serverConfig>

    注意: BEA Systems 强烈建议通过 SSL 端口或管理端口将 WLST 连接到服务器。如果不这样做,将显示以下警告消息:
注意: 注意:使用了不安全协议连接到服务器。
要确保 on-the-wire 安全性,应该使用 SSL 端口或 Admin 端口。

有关 connect 命令的详细信息,请参阅 connect

输入 WLST 命令的要求

请按照下列规则输入 WLST 命令。另请参阅 WLST 命令和变量参考WLST 联机版和脱机版命令概要

确保访问安全数据

不在域的 XML 配置文档中存储 WebLogic Server 用户、安全组和安全角色的用户名和密码。域改用被称为“身份验证提供程序”的单独软件组件来存储、传输以及访问安全数据。身份验证提供程序可以使用不同类型的系统存储安全数据。WebLogic Server 安装的身份验证提供程序使用嵌入式 LDAP 服务器。

当您使用 WLST 脱机版创建域模板时,WLST 将身份验证提供程序的数据存储器与域文档的其余部分一起打包。如果使用域模板创建一个域,新域具有域模板上身份验证提供程序数据存储器的完全拷贝。

不能使用 WLST 脱机版修改身份验证提供程序数据存储器中的数据。

但是可以使用 WLST 联机版与身份验证提供程序进行交互以及添加、删除或修改用户、组和角色。有关详细信息,请参阅 安全管理

运行脚本

WLST 集成了两个支持运行脚本的 Jython 功能:

要运行本指南中的脚本示例,请复制并保存文件扩展名为 .py 的文本文件(即 filename.py)中的命令。以下列出了如何使用包含命令的文本文件来运行脚本。从头创建 script.py 文件时,可以将示例脚本用作模板。有关详细信息,请参阅 WLST 示例脚本

如果脚本可以将 WLST 连接到正在运行的服务器实例,则请在运行脚本前启动 WebLogic Server。

调用 WLST 和运行脚本

下列命令可以调用 WLST、执行指定的脚本和退出 WLST 脚本外壳。要禁止退出 WLST,请使用 -i 标志。

java weblogic.WLST filePath.py
java weblogic.WLST -i
filePath.py

注意: 如果从中调用 WLST 的目录或 user.home(由 JVM 决定的操作系统用户帐户的主目录)目录中已存在名为 wlstProfile.py 的 WLST 脚本,则一旦调用 WLST,就会自动执行这些命令。在这种情况下,不需要在命令行上指定 WLST 脚本文件的名称。

例如:

c:\>java weblogic.WLST c:/temp/example.py
Initializing WebLogic Scripting Tool (WLST) ...
starting the script ...
...

从 WLST 运行脚本

调用 WLST 后,使用以下命令执行指定的脚本。

execfile(filePath)

例如:

c:\>java weblogic.WLST
Initializing WebLogic Scripting Tool (WLST) ...
...
...
wls:/(offline)>
execfile('c:/temp/example.py')
starting the script ...
...

将 WLST 导入为 Jython 模块

高级用户可以从 WebLogic Server 中将 WLST 导入为 Jython 模块。导入 WLST 后,可以将其与其他 Jython 模块一起使用,使用 Jython 语法直接调用 Jython 命令。

主要步骤包括将 WLST 定义和方法声明转换为 .py 文件、将 WLST 文件导入到 Jython 模块中,以及从导入的文件中引用 WLST。

要将 WLST 导入为 Jython 模块,请执行下列操作:

  1. 调用 WLST。
  2. c:\>java weblogic.WLST
    wls:/(offline)>

  3. 使用 writeIniFile 命令将 WLST 定义和方法声明转换为 .py 文件。
  4. wls:/(offline)> writeIniFile("wl.py")
    The Ini file is successfully written to wl.py
    wls:/(offline)>

  5. 通过输入以下命令打开新的命令外壳,并直接调用 Jython:
  6. c:\>java org.python.util.jython

    Jython 包管理器将处理类路径中的 JAR 文件。将出现以下 Jython 提示:

    >>>

  7. 使用 Jython import 命令将 WLST 模块导入到 Jython 模块中。
  8. >>>import wl

  9. 现在,可以在此模块中使用 WLST 方法。例如将 WLST 连接到服务器实例:
  10. wl.connect('username','password')
    ....

    注意: 将 WLST 用作 Jython 模块时,在包含 block 参数的所有 WLST 命令中,block 始终设置为 true,以指定在完成命令之前,WLST 将阻塞用户交互。请参阅 WLST 命令和变量参考

退出 WLST

要退出 WLST,请执行下列操作:

wls:/mydomain/serverConfig> exit()
Exiting WebLogic Scripting Tool ...
c:\>

从 Ant 中运行 WLST

wlst Ant 任务在随 WebLogic Server 一起提供的 Ant 版本中是预定义的,使用此任务可以从 Ant 生成文件中运行 WLST 脚本。

注意: 如果要利用您自己的 Ant 安装使用该任务,请在生成文件中添加以下任务定义:
注意: <taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask" />

要从 Ant 脚本运行 WLST,请执行下列操作:

  1. 在命令外壳中设置环境。
    • 在 Windows NT 上,执行位于 WL_HOME\server\bin 目录下的 setWLSEnv.cmd 命令,其中 WL_HOME 指 WebLogic Server 安装的顶级目录。
    • 在 UNIX 上,执行位于 WL_HOME/server/bin 目录下的 setWLSEnv.sh 命令,其中 WL_HOME 为 WebLogic Server 安装的顶级目录。
  2. 将调用添加到 wlst Ant 任务,以执行 WLST 命令。例如:
  3. <target name="runwlst"> 
    <wlst fileName="./myscript.py" executeScriptBeforeFile="true"
    debug="false" failOnError="false">
    <script>
    connect('weblogic','weblogic','t3://localhost:7001')
    </script>
    </wlst>
    </target>

    通过 wlst Ant 任务,可以使用 fileName 特性指定 WLST 命令,或者将 WLST 脚本命令嵌入到生成文件内的 <script> 标记中。有关 Ant 任务命令语法的详细信息,请参阅 wlst Ant 任务语法

  4. 可通过在临时目录中键入 ant,也可以通过将命令传递到目标参数执行 Ant 任务或 build.xml 文件中指定的任务:
  5. prompt> ant runwlst
    注意: 使用 ant -verbose 获取来自 wlst 任务的详细消息。

wlst Ant 任务语法

wlst Ant 任务的语法如下:

<wlst propertiesFile="propsFile" fileName="fileName" arguments="arglist" failOnError="value" executeScriptBeforeFile="value" debug="value">
<script>
wlst-commands
</script>

可以使用 fileName 特性在某个 WLST 脚本 (.py) 文件中指定 WLST 命令,并指定此文件,或将 WLST 脚本命令嵌入到生成文件内,并用 <script> 标记将这些命令括起来。

下表定义了可指定为 wlst Ant 任务一部分的 Ant 任务特性。

表 2-1 Ant 任务特性
特性
定义
propertiesFile="propsFile"
可选。属性文件的名称和位置,此属性文件包含可在脚本中引用的名值对。
fileName="fileName"
可选。要执行的 WLST 脚本文件的名称和位置。如果指定的 WLST 脚本文件不存在,则 wlst Ant 任务将失败。
arguments="arglist"
可选。要传递给脚本的参数的列表。可通过使用 sys.argv 变量访问这些参数。
failOnError="value"
可选。是布尔值,指定如果 wlst Ant 任务失败,Ant 生成脚本是否将失败。此特性默认为 true
executeScriptBeforeFile="value"
可选。是布尔值,指定嵌入式脚本是否在指定的 WLST 脚本文件之前执行。此特性默认为 true,指定先执行嵌入式脚本。
debug="value"
可选。是布尔值,指定执行 WLST Ant 任务时是否应输出调试语句。此特性默认为 false

示例

示例 1

在以下示例中,createServer 可执行下列操作:

示例 2

在以下示例中,loop 可以执行下列操作:

示例 3

在以下示例中,error 可以执行下列操作:

 


获取帮助

要显示有关 WLST 命令和变量的信息,请输入 help 命令。

如果指定 help 命令没有参数,WLST 将概括命令类别。要显示有关特定命令、变量或命令类别的信息,请将其名称指定为 help 命令的参数。要在命令行列出所有联机版或脱机版命令的概要,请分别使用下列命令:

   help('online')
   help('offline')

help 命令支持查询;例如 help('get*') 可显示以 get 开始的所有命令的语法和用法信息。

例如,要显示有关 disconnect 命令的信息,请输入以下命令:

wls:/mydomain/serverConfig> help('disconnect')

此命令将返回以下信息:

Description:
Disconnect from a weblogic server instance.

Syntax:
disconnect()

Example:
wls:/mydomain/serverConfig>
disconnect()

 


记录用户交互

要开始和停止记录所有 WLST 命令输入,请输入:

startRecording(recordFilePath,[recordAll])
stopRecording()

输入 startRecording 命令时,必须指定用于存储 WLST 命令的文件路径名。还可以指定是否要捕获所有用户交互,还是只捕获 WLST 命令;recordAll 参数默认为 False。

例如,要将 WLST 命令记录在 record.py 文件中,请输入以下命令:

wls:/mydomain/serverConfig> startRecording('c:/myScripts/record.py')

有关详细信息,请参阅 startRecordingstopRecording

 


重定向 WLST 输出到文件

要开始和停止重定向 WLST 输出到文件,请输入:

redirect(outputFile,[toStdOut])
stopRedirect()

必须指定要重定向 WLST 输出到的文件的路径名。还可以指定是否要将 WLST 输出发送到 stdouttoStdOut 参数默认为 True。

例如,要重定向 WLST 输入到当前目录下的 logs/wlst.log 文件,并禁用将输出发送到 stdout,请输入以下命令:

wls:/mydomain/serverConfig> redirect('./logs/wlst.log', 'false')
注意: WLST 不会对某些操作进行重定向。例如 WLST 不会重定向 Jython 层的消息输出。

有关详细信息,请参阅 redirectstopRedirect

 


将现有配置转换为 WLST 脚本

要将现有的服务器配置(config 目录)转换为可执行的 WLST 脚本,请输入:

configToScript([domainDir], [scriptPath], [overwrite], [propertiesFile], [deploymentScript])

也可以指定:

注意: configToScript() 可创建辅助用户配置文件和用户密钥文件,以保持加密的特性。

可使用生成的脚本在其他服务器上重新创建资源。运行生成的脚本前,应更新属性文件,指定适合于您的环境的值。运行生成的脚本时:

例如,以下命令可从位于 c:/bea/user_projects/domains/mydomain 域中创建 WLST 脚本,然后将其保存到 c:/bea/myscripts

wls:/(offline)> configToScript('c:/bea/user_projects/domains/mydomain',
'c:/bea/myscripts')

有关详细信息,请参阅 configToScript

 


自定义 WLST

可以使用 WLST 主目录自定义 WLST,默认情况下主目录位于 WL_HOME/common/wlst,其中 WL_HOME 指 WebLogic Server 的顶级安装目录。在 WLST 主目录中定义的所有 Python 脚本都是在启动 WLST时导入的。

注意: 可通过在命令行上传递以下参数来自定义默认 WLST 主目录:
-Dweblogic.wlstHome=<another-directory>

下表描述了自定义 WLST 的几种方法。

表 2-2 自定义 WLST 
要定义自定义...
执行下列操作...
有关示例脚本,请参阅...
WLST 命令
创建可定义新命令的 Python 脚本,并将此文件复制到 WL_HOME/common/wlst
WL_HOME/common/wlst/sample.py
在此脚本中,已定义可打印字符串的 wlstHomeSample() 命令,如下所示:
wls:/(offline)> wlstHomeSample()
Sample wlst home command
库中的 WLST 命令
创建可定义新命令的 Python 脚本,并将此文件复制到 WL_HOME/common/wlst/lib
位于此目录中的脚本将被导入为 Jython 库。
WL_HOME/common/wlst/lib/wlstLibSample.py
在此脚本中,已定义可打印字符串的 wlstExampleCmd() 命令,如下所示:
wls:/(offline)> wlstLibSample.wlstExampleCmd()
Example command
作为 Jython 模块的 WLST 命令
创建可定义新命令的 Python 脚本,并将此文件复制到 WL_HOME/common/wlst/modules
可将此脚本导入到其他 Jython 模块中,如 将 WLST 导入为 Jython 模块 中所述。
WL_HOME/common/wlst/modules/wlstModule.py
包含 Jython 2.1 中可用的所有 Jython 模块的 JAR 文件 jython.jar在此目录中也可用。


  返回顶部       上一页  下一页