WebLogic 域配置策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebLogic 域配置策略
在本文的第一部分(第 8 期,卷 3 ,WLDJ )中,我曾向您详细介绍了可用于创建和配置域,以及经过评估的指南和模板选项的不同策略。在本文中,我使用了像 WLShell 、 WebLogic Scripting Tool 、 Silent Scripts 和 Ant 这样的工具来配置域。这些工具利用了简单的高级脚本语言。
注意:本文在很大程度上依赖于一些通用的步骤,比如第一部分中描述的域创建、数据库配置和检查域配置。
脚本语言
有很多问题与脚本语言的结构和语义有关。如何编写注释?如果有的话,什么是行分隔符?该语言支持哪些数据类型?该语言是否有变量和赋值?如何执行查询和导航?如何调用行为(即方法)?是否支持分支和循环?幸运的是,许多可选的脚本语言都可以用于域配置。让我们看一看这些语言。
WLShell
根据 WLShell 站点的说法,“ WLShell 是一种用于 WebLogic 的 shell 。” WLShell 使用一种非常简单的脚本语言来提供对 JMX Mbean 的访问,并提供一种熟悉的文件和目录导航模型,来导航 MBean 。
WLShell 的安装非常简单。下载正确的安装程序并执行之。遵照安装程序的步骤,完成安装。
WLShell 脚本语言支持单行注释。注释字符是散列符号( # )。以 # 开始的一切内容都被注释掉了。没有特殊的行结束符号。回显命令是 print 或者 echo 。
WLShell 使用熟悉的目录和文件概念来导航 WebLogic Server 实例, MBean 对应于目录,而 MBean 的属性对应于文件。因此,导航是通过像 cd 和 ls 这样的可识别命令来完成的。用于创建一个 MBean 的命令是 md ,而用于删除一个对象的命令是 rd 。例如,要创建一个名为 semJDBCConnectionPool 的连接池,可以执行下面的命令:
md /JDBCConnectionP oo l/semJDBCConnectionP oo l
如果名称包含正斜杠怎么办?可以通过使用一个另外的正斜杠对这个正斜杠进行转义。例如,要创建一个名为 jdbc/semJDBCDataSource 的数据源,可以执行下面的命令:
md /JDBCTxDataSource/jdbc//semJDBCDataSource
设置一个对象的变量属性可以使用 set 命令来完成。要设置一个 boolean 类型的变量,需要调用 set variable-name true-or-false 。例如,要把 StdoutDebugEnabled 变量设置为 true ,可以调用下面的命令:
set StdoutDebugEnabled true
要设置一个 integer 类型的变量,需要调用 set variable-name integer-value 。例如,要把StdoutSeverityLevel 变量的值设置为 64 ,可以调用下面的命令:
set StdoutSeverityLevel 64
要设置一个 string 类型的变量,需要调用 set variable-name "string-value." 。例如,要把 URL 设置为 jdbc:pointbase:server://localhost:9093/workshop ,可以调用下面的命令:
set URL "jdbc:pointbase:server://localhost:9093/workshop"
设置原始类型的变量很容易,但是如何设置 java.util.Properties 类型的变量呢?要设置
java.util.Properties 类型的变量,需要使用特殊的语法。调用 set variable-name (java.util.Properties) "name=value ,各个 name=value 对之间由分号隔开。例如,要设置连接池的属性,可以调用下面的命令:
set Properties (java.util.Properties)
"user=weblogic;databaseName=jdbc:pointbase:server://localhost:9093/semdb"
至此,我已分析了如何设置 boolean 、 int 、 String 和 Properties 类型的变量。那么如何设置另一种 MBean 类型的变量呢?只要调用 set variable-name path-to-the-mbean 即可。例如,要设置 JMS JDBC 存储器的连接池属性,可以调用下面的命令:
set ConnectionP oo l /JDBCConnectionP oo l/semJDBCConnectionP oo l
通过执行 ls 命令, WLShell 不仅列出了可以获取或设置的属性,而且还列出了可以调用的操作。如何执行一项操作呢?需要使用一个叫做 invoke 的特殊命令。 Invoke 命令的语法是: invoke method-name parameter-list-separated-by-space 。例如,要把连接池部署到服务器,可以调用下面的命令:
invoke addTarget /Server/
在上面的例子中,方法名称是 addTarget 。方法带有一个参数,即服务器的 MBean 。
使用 WLShel l 部署应用程序是一件棘手的事情。获得一个到 /Deployer-Runtime/DeployerRuntime 实例的引用,并创建一个实例来保存部署的数据。把数据与服务器关联起来,然后激活应用程序。
可以以脚本模式和交互模式来使用 WLShell 。在交互模式中,创建了一个 WLShell 会话,并将其连接到一个正在运行的 WebLogic Server 实例。通过在 WLShell 会话中调用命令可以修改 WebLogic Server 实例。要以交互模式运行 WLShell ,可以执行下面的命令:
%wlsh
在脚本模式中,需要创建并执行 WLShell 命令的一个脚本。可以一次性创建该脚本,随后执行任意多次,以便建立类似的域。用于执行脚本的语法是 wlsh -f script-file-name 。要使用脚本创建示例域,可以执行下面的命令:
%wlsh -f sem_domain_wlshell.txt
在上面的例子中, sem_domain_wlshell.txt 文件包含 WLShell 语句以配置域。
在执行 WLShell 脚本之前,配置一个空的 WebLogic Workshop 域,具体方法是按照“域配置”部分中的步骤,使用 SEMDomain-WLShell 作为配置名称。为了运行 WLShell ,只要检查 wlshell/bin 目录在 PATH 环境变量中是否可用即可。现在执行脚本:
wlsh -f sem_domain_wlshell.txt
检查配置的正确性,具体方法是按照检查域配置部分中所说的那样运行测试。
WLShell 支持通过 c2w 命令,把现有的 config.xml 文件转换为 WLShell 脚本和命令。 WLShell 支持离线模式工作,并支持连接到 config.xml 而不是正在运行的服务器上。然而,这个实现并非功能完备。例如,在离线模式中创建连接池会导致出现一条“ feature not implemented ”(意思是此项功能尚未实现)的消息。
WebLogic Scripting T oo l (WLST)
WLST 使用 Jython 作为其脚本语言。 Jython 站点声称,“ Jy thon 是面向对象的动态高级语言 Python 的一种实现, 100% 使用 Java 编写,并且与 Java 平台无缝集成。”不用进行重复性的劳动, WLST 在脚本基础架构方面做了一个十分明智的决定。 WLST 利用了 Jython 功能强大的脚本语言。
下面给出安装指导:
∙下载 WLST (wlsScripting.zip) 文件并解压缩之(比如 c:WLST) 。 wlsScripting.zip 文件包含wlst_doc.pdf 文件。 wlst_doc.pdf 文件包含了有关 WLST 的所有详细信息,比如安装、配置和执行。
请查阅参考资料部分,以便获得更多有关下载和安装 WLST 的详细指导。
下面给出 WLST 的配置指导:
∙在 CLASSPATH 中设置 weblogic.jar ,具体方法是执行 setWLSEnv (例
如, %WLS_HOME%serverinsetWLSEnv.cmd )。
∙在 CLASSPATH 中设置 wlst.jar 。
∙在 CLASSPATH 中设置 jython.jar 。
∙通过执行 java weblogic.WLST 检查 WLST 是否正在工作。这会以交互模式执行 WLST 。
参考 wlst_doc.pdf 文件,以获得有关配置 WLST 的详细指导。
可以用脚本模式和交互模式使用 WLST 。在交互模式中,需要以离线模式创建一个 WLST 会话。在这种模式中, WLST 并未连接到一个正在运行的 WebLogic Server 实例。一旦 WLST 连接到一个正在运行的WebLogic Server 实例,便可以通过在 WLST 会话中调用命令来修改 WebLogic Server 实例。在脚本模式中,需要创建并执行 WLST 命令的一个脚本。就像在交互模式中一样,脚本包含 Jython 语句。脚本文件是一个Jython 文件。可以一次性创建脚本,然后执行任意多次,以建立类似的域。
要以交互模式调用 WLST ,可以调用下面的命令:
java weblogic.WLST
要以脚本模式调用 WLST ,需要传入脚本的名称。例如:
java weblogic.WLST sem_domain_wlst.py