WLST(Weblogic Script Tool)

参考  http://edocs.weblogicfans.net/wls/docs92/config_scripting/intro.html#wp1034390

什么是 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 实用工具,用于部署应用程序。有关这些命令行实用工具的详细信息,请参阅:

  • "“使用 WebLogic Server 开发应用程序”中的使用 Ant 任务配置和使用 WebLogic Server 域,其中描述了将 WebLogic Ant 任务用于启动和停止 WebLogic Server 实例以及配置 WebLogic Server 域。
  • "“将应用程序部署到 WebLogic Server”中的部署工具概述,其中描述了 WebLogic Server 提供的用于部署应用程序和独立模块的几种工具。

通过交替使用 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 脚本,可以:

  • 使 WebLogic Server 配置和应用程序部署自动化
  • 在拓扑的多个节点之间迭代应用同一配置设置
  • 利用在交互模式下受限制的脚本语言功能,例如循环、流控制构造、条件语句、变量计算等
  • 安排脚本在不同的时间运行
  • 使重复的任务和复杂的过程自动化
  • 在无人参与数据中心配置应用程序

清单 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();
  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值