跳到导航
BEA Dev2Dev Oracle and BEA
首页 资源中心 dev2dev学堂 在线技术论坛 User Group CodeShare
dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
使用WLST进行域配置

时间:2006-10-16
作者:Jeremiah Johnson
浏览次数:
本文关键字:BEA WorkshopWebLogic ServerWLST
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

  我的团队使用WLST,而不是很多Workshop用户熟悉的Configuration Wizard来创建和管理域。我们发现,WLST最容易包含在脚本中,并在几乎完全相同的开发、登台和生产阶段中生成/重新生成环境(这些环境之间的差别仅在于其目的不同,比如JDBC URL、SSL密钥存储等)。我们从Ant调用WLST建立域,并且在登台和生产阶段设置Web应用程序库和SSL密钥存储细节。

   因为我们从Ant调用了WLST,需要指出的是,在线文档中存在一个错误:http://e-docs.bea.com/wls/docs92/config_scripting/using_WLST.html#wp1086672列出了propertiesFile属性,但是您将注意到,在我的Ant脚本中,属性(attribute)名称实际上就是特性(property)。下面这个代码片段说明,我们如何调用初始脚本来创建域并对开发实例进行足够的配置:

<wlst failOnError=”true” 
fileName=”domainConfig-offline.py” properties=”user.properties” />

  有关WLST的文档很全面而且优秀,但是我们发现有两个部分,首次使用时涉及到一点小技巧:置换管理用户和设置SSL属性。我们使用common/templates/domains/wls.jar作为基本域,但是weblogic用户不是我们所希望的。SSL的文档描述得很清楚,加密命令是一个仅供在线使用的命令,但是第一次我们无法完全理解这意味着什么。

   置换默认的weblogic管理用户的过程是,先删除然后再创建(现在就有意义了):

cd(‘/Security/base_domain’)
delete(‘weblogic’, ‘User’)
adminUser=create(adminUsername, ‘User’)
adminUser.setPassword(adminPassword)

  注意,adminUsername和adminPassword是定义在属性文件(user.properties)中的,上面的代码片段节选自domainConfig-offline.py。为了确保意思更加清晰,下面给出了user.properties中的相关代码片段:

adminUsername=billy
adminPassword=password

  如果查看WLST的参考文档(http://e-docs.bea.com/wls/docs90/config_scripting/reference.html)并选择命令内容之一(即Control Commands),您将看到一个表,其内容显示是否有不同的命令可以离线、在线或同时离线和在线工作。对于只能在线工作的命令,您需要启动并连接服务器,才能让这些命令工作。没有运行服务器也能完成我们大部分的配置,但是某些命令的确需要运行服务器。设置SSL密钥存储和密钥传递阶段就一定需要在在线模式中完成。

   在Ant脚本中,我们使用wlserver来启动使用前面引用过的domainConfig-offline.py脚本创建的服务器。服务器运行之后,我们运行另一个WLST脚本来设置这些仅适用于在线的设置。下面就是脚本中最重要的部分:

cd(‘/Servers/AdminServer’)
set(‘KeyStores’, ‘CustomIdentityAndJavaStandardTrust’)
set(‘CustomIdentityKeyStoreFileName’, sslKeyStore)
set(‘CustomIdentityKeyStoreType’, ‘JKS’)

encryptedKeyStorePassword=encrypt(sslKeyStorePassword, DOMAIN_DIR)
set(‘CustomIdentityKeyStorePassPhrase’, encryptedKeyStorePassword)
cd(‘SSL/AdminServer’)
set(‘ServerPrivateKeyAlias’, sslKeyAlias)

encryptedKeyPassword=encrypt(sslKeyPassword, DOMAIN_DIR)
set(‘ServerPrivateKeyPassPhrase’, encryptedKeyPassword)

  注意,我们对开发、登台和生产环境使用了不同的密钥存储,这样所有的参数都可以定义在属性文件中(除了类型之外。因为我们一直使用JKS,所以我有充分把握在WLST中对其进行硬编码)。在上面的代码片段中,user.properties文件中的属性是sslKeyStore 、sslKeyAlias和sslKeyPassword。

  原文出处:http://dev2dev.bea.com/blog/jerjohns/archive/2006/09/using_wlst_for.html

dot dot dot

dot
  作者其它文章
您对本文的评价
您对这篇文章的看法如何?
太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分

   
相关产品