查看: 6989|回复: 2

[原创] 使用wlst快速部署domain的方法

[复制链接]
论坛徽章:
0
发表于 2011-7-3 22:44 | 显示全部楼层 |阅读模式
有时候要在多个环境搭建多个domain,然而搭建一个domain有很多工作要做,包括创建domain,配置多个数据源,发布应用,配置端口,创建多个server,做集群等等配置,比较繁琐,今天发现用wlst脚本可以域模板的方式实现,非常方便。

WebLogic Scripting Tool 是一种用于编写 BEA WebLogic 域配置脚本的 BEA 工具。目前,在 BEA dev2dev Web 站点上,WLST 可以作为 WebLogic 8.1 的开发人员发行版使用。在 WebLogic Server 9中随版本发布中已经包含 WLST 。
WLST 具有以下两个版本:
WLST Online : 可用于查询和修改正在运行的 WebLogic Server 域。
WLST Offline : 可用于在不具备正在运行的 WebLogic Server 域的情况下构建 WebLogic 域。

使用的版本是weblogic 10.0.1,如何启动wlst呢?网上很多都说要配置环境变量,增加weblogic.jar等待,其实只要运行E:\bea\wlserver_10\common\bin下的wlst.cmd就可以了,liunx下也是一样的,系统自动帮你配置好环境变量了。
   第一步,读取域:
   在A机器上有一个domain,现在要把它迁移到B机器上,注意操作系统必须是一样的。
启动wlst.cmd,在提升符下,读取domain,命令如下:
  wls:/offline> readDomain('c:/bea/user_projects/domains/tpclaim'),注意路径分隔符必须是”/”,而不是”\”,否则会报错的。
第二步,创建域模板
然后把该域的配置信息写入到模板里,命令如下:
wls:/offline/ tpclaim > writeTemplate('e:/bea/user_projects/templates/myTemplate.jar')
然后把myTemplate.jar文件移到B机器上。
第三部,读取域模板
在B机器上,运行wlst.cmd,在提示符下读取域模板,命令如下:
wls:/offline> readTemplate('e:/bea/user_projects/templates/myTemplate.jar’)
wls:/offline/tpclaim >
第四步,写入域
命令如下:
writeDomain(domainDir)
参数                    定义
domainDir           要向其中写入域配置信息的目录名称。

默认情况下,写入域时会将相关联的应用程序写入 BEAHOME/user_projects/applications/domainname,其中 BEAHOME 用于指定 BEA 主目录,domainname 用于指定域的名称。此目录必须为空,否则 WLST 将显示错误。
wls:/offline/ tpclaim > writeDomain('e:/bea/user_projects/domains/tpclaim’):

这样就在B机器上部署了和A机器上一摸一样的应用了,程序包也自动加上了,不用另外部署的。启动的时候若报密码错误,则需要自己建一个密码文件,或者在startWebLogic.cmd里自己加上密码就行了。
另外,第三步和第四步也可以直接用createDomain()就可以了,
语法:
createDomain(domainTemplate, domainDir, user, password)
参数                                定义
domainTemplate            要从中创建域的域模板的名称和位置。
domainDir                      要向其中写入域配置信息的目录名称。
user                               默认用户名。
password                      默认用户密码。
示例
以下示例将通过使用 Avitek MedRec 模板新建域,并将默认用户名和密码设置为 weblogic。新建的域将被保存到以下目录:c:/bea/user_projects/domains/medrec。
wls:/offline> createDomain('c:/bea/weblogic92/common/templates/domains
/wls_medrec.jar','c:/bea/user_projects/domains/medrec', 'weblogic', 'weblogic')

有关这些命令可以在http://edocs.weblogicfans.net/wl ... cripting/index.html
这个网站找到。
除了使用脚本方式,调用wlst。亦可以直接在java代码和ant任务中,调用wlst。
import java.util.*;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;


/**
* Simple embedded wlst example that will connect to a running server
* and creates 2 servers and assigns them to a newly created cluster and exits
* <p>Title: EmbeddedWLST.java</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: BEA Systems</p>
*/

public class EmbeddedWLST
{
  static InteractiveInterpreter interpreter = null;
  
  EmbeddedWLST() {
    interpreter = new WLSTInterpreter();
  }
  
  static void connect() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("connect('weblogic','weblogic')");   
    interpreter.exec(buffer.toString());
  }

  static void createServers() {
    StringBuffer buf = new StringBuffer();
    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("saveDomain()\n");
    buf.append("print 'Script ran successfully ...' \n");
    interpreter.exec(buf.toString());
  }
  
  public static void main(String[] args) {
    new EmbeddedWLST();
    connect();
    createServers();
  }  
  
  
}
  使用wlst offline可以从无到有的创建出一个weblogic域,实现域创建的全部自动化。
系统自动带的一些脚本可以参考,在E:\bea\wlserver_10.3\common\templates\scripts\wlst目录下。

[ 本帖最后由 Tomthe 于 2011-7-3 22:48 编辑 ]
论坛徽章:
1
ERP板块每日发贴之星
日期:2011-07-06 01:01:01
发表于 2011-7-5 10:00 | 显示全部楼层
帮顶一下

使用道具 举报

回复
论坛徽章:
0
发表于 2011-11-29 15:36 | 显示全部楼层
收藏了,非常有用

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年6月4日~6日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表