weblogic布署

WebLogic Server应用部署模式讲解  

2011-01-17 14:46:35|  分类: JAVA中间件 |  标签: |字号 订阅


发表于 2009年12月31日Yekki

熟悉Tomcat的朋友都知道,在Tomcat上部署应用非常简单,只要把应用包或目录放入webapps目录下就完事儿了。但是在WebLogic Server环境下,问题要复杂很多。首先,WebLogic Server是应用服务器,不象Tomcat一样只是个Web容器;其次,WebLogic Server的域管理模式决定了管理服务器与被管理服务器可能根本就不在同一台物理服务器上,所以WebLogic Server上部署应用至少有两个要考虑:

  • 需要部署的应用包(或展开式目录)如何分发与同步
  • 已部署的应用如何更新

为解决上述问题,WebLogic Server引入了一个概念,即应用部署模式。其包括三种模式:Stage、Nostage和External_Stage,在WebLogic Server的控制台中,我们可以设置缺省模式,如下图:

stage_mode

说明:截图用的是WebLogic Server 10.3.2国际版,其中用了“临时模式”这个词,我个人觉得不太适合,还是用“部署模式”比较好理解。其中的“存放、不存放与外部存放”就是对应英文“Stage、Nostage与External_Stage”

不存放模式(Nostage)

不存放的东西是什么,这里指的是部署文件,那么不存放在哪里呢,这里指的是Stage目录,即:上图中的“临时目录名称”。默认是在被部署服务器文件夹下 的stage目录,例如:在我机器上是D:\oracle\fmw\user_projects\domains\base_domain \servers\AdminServer\stage。

综合起来理解,Nostage就是指通过WebLogic Server管理控制台或命令行工具发出部署应用命令后,应用部署包不被传送到Stage目录。

那么这种模式存在的真正意义是什么呢,举例来说,如果在一个比较大WebLogic Server集群环境(例如:我碰到过12台服务器构成的集群)中,如果在其上部署一个应用或更新一个应用,那就意味着要将部署文件传送到12台服务器 上,这显示是非常低效的。遇到这种情况,我们可以将应用包放在一个共享磁盘上,然后使用Nostage模式发布应用,这样就可以避免刚才所说的情况。还有 一种情况就是如果我们使用展开目录方式发布应用,如果采用Nostage方式就可以在应用目录里直接改JSP文件了,无需重新部署就可以生效,当然对类文 件或配置描述符文件的更改就得重新部署了,这比较类似于Tomcat的模式。

命令行举例:

java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mytestear -stage -targets mycluster
-deploy c:\bea\weblogic81\samples\server\medrecd\dist\physicianEar

存放模式(Stage)

有了上面Nostage知识的基础,我不用讲大家也可以想出来,Stage就是指应用发布时应用包会被传送到Stage目录。使用Stage模式的好处是 如果需要将应用发布到集群或多服务器上,无需使用共享磁盘等技术,WebLogic Server会保证将应用包同步到所有需要部署到的服务器上。当然,这是以牺牲应用发布效率为代价的。

这里需要注意的一点,管理员通过WebLogic Server控制台或命令行发布应用时,应用包会先传送到WebLogic Server的管理服务器(即:Admin Server),然后由管理服务器负责应用包的分发与同步。同时,管理服务器上也会有一个应用包的副本,哪怕应用并不需要部署到管理服务器,这是为了使应 用服务器在应用发布前对其效验证的。

命令行举例:

java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname
-targets myserver1,myserver2,myserver3 -stage
-deploy c:\localfiles\myapp.ear

外部模式(External_Stage)

External_Stage原理上其实和Stage类似,只有一点不同,External_Stage模式下,管理服务器不负责应用包的传递与同步。这 种模式其实是为第三方工具提供了一种干预方式,也就是说在应用部署时,由第三方工具负责先把发布到传送到Stage目录,然后再由管理服务器管理应用的发 布,这时,应用服务其实只是负责发布包的验证(同样,管理服务器上需有部署文件)与部署激活。

命令行举例:

java weblogic.Deployer -adminurl http://localhost:7001 -name weblogic
-password weblogic -external_stage -name myEARExternal
-deploy c:\myapps\myear

最佳实践

1. 当我们将应用以包(.WAR、EAR、RAR)的方式发布时,如何可以方便的修改包里的文件(如:JSP、HTML等)而无需重部署。

其实,这并不是推荐方式,如果有这种需求,应该使用展开目录的方式发布应用而非应用包,但是如果是特殊情况下必须这样做,可以到被部署应用的服务器目录下 的\tmp\_WL_user目录下寻找,例如,在我的机器上:D:\oracle\fmw\user_projects\domains \base_domain\servers\AdminServer\tmp\_WL_user

WebLogic Server会为每个发布的应用建立一个文件夹,我们可以在里面找到应用包的展开形式目录,并对其中的文件进行修改,无需重部署就会生效,但需要注意一点就是,如果应用被更新了,这个目录下的文件也会被更新,这就意味着你的修改会丢失。

2. External_Stage模式下,避免管理服务器上需有部署文件

您可以使用 -noversion 选项取消“管理服务器上需有部署文件”这一要求,但 -noversion 选项会导致版本信息被忽略,从而致使您无法将 -noversion 选项用于受版本控制的应用程序。

3. 最便捷的应用发布方式

在域根目录下有个autodeploy目录,只要将部署文件放在里面就会被自动部署到管理服务器,当然,这种应用发布方式只适用于单机模式。对于autodeploy的话题以后将会详细讲述。




weblogic部署war包_百度知道  

2010-07-28 23:50:33|  分类: 默认分类 |  标签: |字号 订阅

利用各种IDE工具,将项目打成War包(当然,也可以直接在IDE中将服务器配置成Weblogic Server),部署到 Weblogic上,有多种方法: 1、利用Console控制台: 登录控制台后,选择左边的树型菜单“部署——Web应用程序模块”,然后选择界面右边的“部署web新应用程序 模块”,然后再选择War文件所在的路径(程序会自动将该目录下的War文件列出来),部署即可。 2、利用Weblogic Builder: 在Weblogic安装目录下(菜单)有自带的工具Weblogic Bulider,该工具可以修改War包中的文件内容,然后 直接发布。步骤为:首先启动Weblogic Server服务,打开Weblogic Bulider,在"Tools---Connect to Server" 界面中配置,连接到WLS(连接成功后下面的状态栏有标志);然后“File--Open"打开War包,修改后,按 ”Tools---Deploy Module...“部署即可。 3、直接将War包放到”user_projects\domains\mydomain\applications“下,WLS启动时,会自动检测该目录下的War 包,然后自动部署的。 在部署成功后,会在Console左边的菜单--Web应用程序部署看到所部署的项目名称。 在WLS下部署WAR包,不象Tomcat部署(Tomcat会将War包解开,生成一个单独的文件夹),它是在WLS启动时,将 WAR包自动解开,放到域下面的一个临时文件夹中,比如bea\user_projects\domains\workshop\cgServer\.wlnotdelete\extract 下。(我没有试过,如果直接将IDE的服务器配置成Weblogic,是否会生成文件夹) 部署后运行程序,是在地址栏输入” http://127.0.0.1:7001/“还是” http://127.0.0.1:7001/projectname/“,需要根据 部署项目中Weblogic.xml配置访问的虚拟路径来决定: 如果是: <weblogic-web-app> …… <context-root>WebApp</context-root> …… </weblogic-web-app> 访问是就用如下地址 " http://localhost:7001/WebApp " 如果不写<context-root/>的话就是按web application的名称访问 application的路径或*.war的名称 如果这样写的话:<context-root>/</context-root>,那么就可以这样直接访问" http://localhost:7001/ "




=======================================================

WebLogic Server基础

http://chenlei0715.blog.163.com/blog/static/155637192007524115515397/?fromdm&fromSearch&isFromSearchEngine=yes


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值