背景知识
人们一直希望WebLogic Server支持一个脚本解决方案,以允许开发人员和系统管理员可靠地、交互式地对WebLogic Server配置执行简单和复杂的更改。当前,WebLogic Server 支持三个命令行工具:weblogic.Admin、weblogic.Deployer和WLConfig Ant 任务工具。
这三个工具都需要一个运行的Weblogic Server实例。其中Weblogic.Admin和WLConfig用来修改配置和查询MBean,weblogic.Deployer则严格用于部署应用程序。还有一些工具WebLogic Server不支持,但是用户很熟悉,例如WLShell、Config2Admin和MBeanExplorer等。
许多用例如果使用一个简单的脚本工具将会非常容易处理。例如,开发人员和管理员可能需要编写脚本来配置服务器,并且想要通过循环和其他流程控制结构来为服务器增加配置元素。类似这样的用例使人们迫切希望有一种可以读取用户脚本并且在WebLogic Server上运行的脚本语言解释器。
WLST试图解决一些当前WebLogic Server开发人员和管理员者所面临的难题。这包括捕捉那些可重复的配置和部署工作,其中配置工作主要是将环境(应用程序和依赖性)准备为大环境的一部分);在生命周期的某一级别或各个级别之间(例如开发和分段级别之间)的用户间共享复杂的配置更改;以及跨一个拓扑结构的多个节点或者在一些其他范围,迭代地应用相同的更改。向WebLogic Server增加对用户定义脚本编程的支持,可以极大地增强可用性,从而提高用户满意度。使用WLST,用户可以定制WebLogic Server,以满足自己的需要,简化日常任务,扩展其他功能。通过提供脚本来处理,重复的任务和复杂的过程现在可以被简化。脚本语言扩展了Java语言,提高了开发速度。
简介
WLST是WebLogic Server的一个命令行脚本接口。WLST脚本环境基于Java脚本解释器(Jython)。WLST使您能够利用所提供的WebLogic Server脚本功能,以及解释型语言的共同特性。这些特性包括局部变量、条件变量和流程控制语句。WebLogic Server开发人员和管理员可以根据Jython语法,扩展WebLogic Server脚本语言来适应自己的需要。
Jython是高级、动态、面向对象语言Python的一个与Java平台无缝集成的实现。Jython是100%纯Java的,由于它清晰简单的语法,使得Jython非常容易学习。Jython的一个主要优点是您可以通过Jython解释器调用任何Java对象。这就意味着用户可以重用自己编写的任何Java代码或者Java工具。本文我们对Jython不做太多深究。关于Jython的更多信息,请访问www.jython.org。
WLST 介绍
WLST有两种版本,脱机版和联机版。脱机版用来在用户没有连接到任何一个WebLogic Server实例的情况下,通过与域文件和配置模板交互来配置域。该功能类似于WebLogic Server 9.0中反对的配置向导(Configuration Wizard)静寂模式脚本编程。联机版用来在用户连接到一个运行的WebLogic Server实例的情况下,更改配置工件或者监视运行时数据。现在两个版本作为两个独立的JAR包提供下载。在WebLogic Server 9.0发布的时候,这两个版本将会整合成为一个工具。
操作模式
WLST提供三种操作模式:交互模式、脚本模式和嵌入模式。在交互模式下,用户在命令提示符下键入命令并查看响应。这种模式对于学习脚本工具及其功能是有用的。另外,对于原型设计命令语法以在编译较大的脚本之前验证选项,也是有用的。清单1中展示了一个交互式会话的例子。在脚本模式下,用户可以把许多脚本命令写在一个文件中,工具将该文件作为程序执行。清单2展示了一个可以在WLST上作为程序执行的简单脚本。在嵌入模式下,用户把WLST解释器嵌入Java应用程序中(参见清单3)。
特性
WebLogic Server实现了JMX 1.0,并且所有子系统(JMS、JDBC、Security等)都被作为相应的MBean并包含属性,可以按这些属性来配置、监视和管理子系统。所有的MBean被组织为层次结构,DomainMBean是所有Configuration MBean的父节点,DomainRuntimeMBean是所有Runtime MBean的父节点。用户可以通过调用不同的WLST命令定位任何MBean。为了简单,定位大致相当于任何操作系统中的文件表示方法。
定位
按照操作系统的说法,WLST有三个驱动:config、runtime和custom。config驱动管理所有的Configuration MBean(DomainMBean是它们的父节点)。runtime驱动管理所有的Runtime MBean(DomainRuntimeMBean是它们的父节点)。custom驱动管理所有的Custom Mbean(非WebLogic的,而是用户在WebLogic Server上注册的)。MBean的类型或者实例就像目录,用户可以“cd”或者定位到这些MBean,以查看属性名和值或操作(即文件)。清单4中的例子展示了一个用户定位到不同的驱动和MBean然后列出其属性和值。
配置
通过“configToScript”命令,用户可以很方便地把资源从一个域移动到另一个域。这个命令以config.xml作参数,并将之转换为相应的WSLT脚本,该脚本被应用于另一个域,以创建一个类似的配置。这个命令也可以创建一个包含名称-值对的属性文件。这些名称-值对可以被修改,以创建具有不同域名、服务器名等的配置。清单5演示了一个简单的例子,其中config.xml被转换为WSLT脚本。用户也可以创建新的配置信息,以及检索和更改存储在域config.xml文件中或者是使用Template Builder创建的域模板JAR中的现有配置值。清单6展示了一个简单的例子,用户读取一个现有的medrec模板,以创建一个medrec域。
当前托管对象(cmo)
每当用户定位到一个MBean实例,他就具有通过cmo变量对这个MBean对象的访问权。这个变量保存MBean的代理对象,所以用户可以调用该MBean接口支持的所有方法或操作。清单7展示了一个可以使用这个变量的例子。
从WLST调用Java程序
如果您用Java编写了命令行工具,并且想要在WLST中重用,这是完全可以做到的。例如,我编写了一个简单的Java程序,用来查询MBeanServer并检索注册在这台服务器上的所有MBean,然后打印它们的对象名称。好处是我不必抛开这些有用的代码或者用Jython重新进行编写,只要从WLST中调用这个程序就行了。清单8显示了这个用Java编写的程序,以及用户如何从WLST中调用该程序。
从Ant中调用WLST
许多用户使用Ant自动完成Weblogic域的配置,如果您愿意把您的WLST配置脚本嵌入Ant编译文件(build file),那么您也可以这样做。清单9展示了编译文件的一个片断,它调用WLST来运行脚本。
扩展WLST命令
WLST定义了一些常用的命令,但这并不限制用户去定义自定义的命令或者模块,然后把它们导入WLST以满足他们的需要。清单10定义了两个自定义的命令:“creatServer”和“deleteServer”。它们创建和删除具有指定名称的服务器。这些命令将会对于WLST会话是活跃的。用户也可以编写一些定义几个有用功能并能导入WLST中的模块。清单11展示的例子中,用户定义了一个安全类,这个类包括创建用户、更改密码等实用功能。
WLST模块
用户常常想将WLST与其他Jython模块一起使用。这只要把WLST模块写入一个文件,并把这个文件导入到您的Jython模块中就可以了。清单12展示了如何编写WLST模块并在Jython模块中使用。有关更多信息,请访问http://dev2dev.bea.com/codelibrary/code/posample.jsp。
WLST 工作方式
让我们完成一个简单的用例,其中展示了使用WLST的端到端场景。假设一个管理员打算为开发人员配置一个域。本质上,他会从头开始创建一个域(一个admin 服务器),启动服务器,配置托管服务器,并群集和部署应用程序。他也会通过一个简单的脚本监视这些服务器的状况。步骤如下:
根据模板创建一个简单的域(一个admin服务器),并启动服务器(见清单13)。
配置两个托管服务器和一个群集。在连接到正在运行的admin服务器之后,添加这两个托管服务器到这个集群,并启动该群集。另外,部署一个简单的应用程序到该群集(见清单14)。
使用一个简单的监视脚本,监视服务器的状态(见清单15)。
前瞻
WLST可以在BEA公司的dev2dev站点上下载。这个工具可以与WebLogic Server 7.0和8.1(以及所有的服务包)一起工作。BEA公司的Management新闻组提供对这个工具的支持。这个工具可以在明年发布的WebLogic Server 9.0中正式得到并受到支持。BEA公司也打算在WebLogic Server 7.1和8.1两个版本中直接支持WLST。
一些您所期待的WLST的新特性:
通过JSR 88 API进行的部署,包括通过WLST进行的部署计划的编辑。
通过WLST对所有诊断框架(WebLogic Server 9.0中新引入的)工件的访问。
脱机版WLST(现在可以单独下载)与现有联机版WLST的合并。
对新的 (WebLogic Server 9.0) 管理API的访问。
支持WebLogic Server 9.0中所有的新节点管理器特性。
结束语
在这篇文章中,我介绍了一个新工具——WLST,它使开发人员和系统管理员能更方便地管理WebLogic Server(联机或者脱机都可以),并能对WebLogic Server执行配置更改。WLST有三种使用模式:交互模式、脚本模式和嵌入模式。它提供了一个简单的方法访问WebLogic Server中的MBean,并且提供了一些方便的命令用于监视WebLogic Server实例的生命周期。WLST是用Jython(Jython是流行的Python语言的纯Java实现)语言编写的。
参考资料
Online WLST Tool: http://dev2dev.bea.com/codelibrary/code/wlst.jsp
Offline WLST Tool: http://dev2dev.bea.com/codelibrary/code/wlst_offline.jsp
Jython's Main Web Site: www.jython.org
PO Sample: http://dev2dev.bea.com/codelibrary/code/posample.jsp
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)