
weblogic部署编程.docx
10页了解 WebLogic 部署 APIWebLogic 部署 API 实现并扩展了 J2EE Deployment API standard (JSR-88) 接口,可以为 WebLogic Server 应用程序提供特定的部署功能下列部分将描述 WebLogic 部署 API 的结构和功能: WebLogic 部署 API J2EE 部署 API 相容性 WebLogic Server 增值部署功能 服务提供程序接口包 模型包 共享包 工具包WebLogic 部署 API注意: WebLogic Server 9.0 不赞成使用早期版本中使用的 weblogic.management.deploy API下列部分提供了 WebLogic Server 部署 API 的概述: WebLogic 部署 API 部署阶段 WebLogic 部署 API 的 weblogic.Deployer 实现 何时使用 WebLogic 部署 APIWebLogic 部署 API 部署阶段J2EE 部署 API 标准 (JSR-88) 在配置会话和部署之间有所区别其区别如下: 涉及生成部署计划的描述符的应用程序配置 诸如分发、启动、停止、重新部署和取消部署的部署任务为了有效地管理环境中的部署过程,必须使用 WebLogic 部署 API 执行下列操作: 配置供部署的应用程序 部署应用程序配置供部署的应用程序在本文档中,“配置” 一词是指准备应用程序或可部署资源以部署到 WebLogic Server 实例的过程。
配置应用程序包括下列几个阶段: 应用程序评估 - 检查并评估应用程序文件,以确定应用程序的结构以及嵌入式描述符的内容请参阅应用程序评估 前端配置 - 基于应用程序中嵌入的内容创建配置信息此内容可以为下列几种形式:WebLogic Server 描述符、默认值以及用户提供的部署计划请参阅执行前端配置 部署配置 - 基于用户输入和选定的 WebLogic Server 目标修改各个 WebLogic Server 配置值请参阅自定义部署配置 部署准备 - 生成最终的部署计划并对应用程序进行初步客户端验证请参阅部署准备部署应用程序应用程序部署是指以下过程:将应用程序和计划分发到管理服务器,以便用于服务器端处理和应用程序启动请参阅执行部署操作WebLogic 部署 API 的 weblogic.Deployer 实现WebLogic Server 提供了一个打包的部署工具 webLogic.Deployer,用于为 WebLogic Server 提供部署服务可通过使用 WebLogic 部署 API 实现的任一部署操作都将由 webLogic.Deployer 部分实现或全部实现。
何时使用 WebLogic 部署 API注意: webLogic.Deployer 是针对 WebLogic Server 环境推荐的部署工具有关如何使用 webLogic.Deployer 和 WebLogic Server 管理控制台的信息,请参阅 将应用程序部署到 WebLogic Server 在下列情况下,可能需要实现 WebLogic 部署 API: 需要使用 WebLogic 服务提供程序接口(Service Provider Interface,简称 SPI)建立自己的实现和接口模型在这种情况下,WebLogic 部署 API 部署工厂将用于获取 WebLogicDeploymentManager,后者会扩展 javax.enterprise.deploy.spi.DeploymentManager 以用于 weblogic.deploy.api.spi请参阅应用程序评估和 J2EE 部署 API 标准 需要使用 WebLogic Server 管理控制台和/或 webLogic.Deployer 创建自己的部署接口在这种情况下,可以使用 WebLogic 部署 API 类和接口实现部分或全部 WebLogic 部署 API 部署阶段。
J2EE 部署 API 相容性WebLogic 部署 API 类和接口可扩展并实现 javax.enterprise.deploy 子包中描述的 J2EE Deployment API standard (JSR-88) 接口WebLogic 部署 API 提供了下列包: weblogic.deploy.api.spi weblogic.deploy.api.spi.factories weblogic.deploy.api.model weblogic.deploy.api.shared weblogic.deploy.api.toolsWebLogic Server 增值部署功能WebLogic 支持 J2EE Deployment API standard (JSR-88) 中描述的“产品提供商”角色,它不仅提供了适用于任何 J2EE 网络客户端的可扩展组件,还提供了特定于 WebLogic Server 环境的实用工具这些扩展功能包括: 支持 WebLogic 功能,例如在 admin 模式下启动或使用版本控制进行重新部署 细化控制,例如: 模块级定位 部分重新部署,即重新部署或删除应用程序的部分内容。
动态配置更改 支持 WebLogic 模块扩展,例如 JMS、JDBC、侦听和应用程序特定配置(自定义/配置)模块 其他操作,例如兼具 distribute 和 start. 于一身的 Deploy 操作注意: WebLogic 部署 API 不支持失败的应用程序更新的自动回退过程开发人员和管理员必须针对每个部署环境定义并配置此行为的策略和过程 服务提供程序接口包作为 J2EE 产品提供商,BEA 扩展了 Sun Microsystems javax 服务提供程序接口 (SPI) 包,以为 WebLogic Server 提供特定的配置和部署控制此包的核心接口为 DeploymentManager,通过此接口可启动、监视和控制所有其他部署活动WebLogicDeploymentManager 接口提供了对 javax.enterprise.deploy.spi.DeploymentManager 接口的 WebLogic Server 扩展WebLogicDeploymentManager 对象是 Weblogic Server 部署框架的无状态接口它提供了基本的部署功能和扩展的 WebLogic Server 部署功能,例如对企业应用程序中的模块进行生产重新部署和部分部署。
通常使用工具包的 SessionHelper 辅助类中的 SessionHelper.getDeploymentManager 方法来获取 WebLogicDeploymentManager 对象请参阅应用程序评估下列部分提供了有关 WebLogic Server SPI 的功能的基本信息: weblogic.deploy.api.spi weblogic.deploy.api.spi.factories 模块定位 支持查询 WebLogic 目标类型 服务器临时模式 DConfigBean 验证weblogic.deploy.api.spiweblogic.deploy.api.spi 包提供了配置应用程序并将其部署到目标所需的接口(有关有效的目标类型,请参阅 支持查询 WebLogic 目标类型)通过此包可以创建能为企业应用程序或独立模块实现 WebLogic Server 特定的部署配置的部署工具weblogic.deploy.api.spi 包含 WebLogicDeploymentManager 接口使用此部署管理器可以执行所有与部署相关的操作,例如分发、启动和停止 WebLogic Server 中的应用程序。
WebLogicDeploymentManager 还为下列功能提供了对 J2EE DeploymentManager 接口的重要扩展,这些功能包括企业应用程序模块的模块级定位、生产重新部署、应用程序版本控制、应用程序临时模式以及约束对已部署应用程序的管理访问等weblogic.deploy.api.spi 包中的 WebLogicDeploymentConfiguration 类和 WebLogicDConfigBean 类表示应用程序的部署和配置描述符(WebLogic Server 部署描述符) WebLogicDeploymentConfiguration 对象是部署计划的包装 WebLogicDConfigBean 封装了 Weblogic 部署描述符中的属性weblogic.deploy.api.spi.factories此包仅包含一个接口,即 WebLogicDeploymentFactory它是对 javax.enterprise.deploy.spi.factories.DeploymentFactory 的 WebLogic 扩展使用此工厂接口可选择并分配具有不同特征的 DeploymentManager 对象。
WebLogicDeploymentManager 特征是由 WebLogicDeploymentFactory 中的公共字段定义的模块定位模块定位是将应用程序中的特定模块部署到不同的目标,与将所有模块部署到同一组目标(如 JSR-88 指定)相对WebLogicDeploymentManager.createTargetModuleID 方法支持模块定位 WebLogicTargetModuleID 类包含对 javax.enterprise.deploy.spi.TargetModuleID 接口的 WebLogic Server 扩展此类与已配置的 TargetInfoMBeans(AppDeploymentMBean 和 SubDeploymentMBean)密切相关与 TargetInfoMBeans 中相比,WebLogicTargetModuleID 类对应用程序模块及其与目标之间的关系提供了更为详细的描述请参阅定位对象支持查询 WebLogic 目标类型对于 WebLogic Server,WebLogicTarget 类提供了用于维护 WebLogic Server 的可用目标类型的直接接口。
表 2-1 描述了目标取值方法表 2-1 目标取值方法方法 描述boolean isCluster() 指示此目标是否表示群集目标boolean isJMSServer() 指示此目标是否表示 JMS 服务器目标 boolean isSAFAgent() 指示此目标是否表示 SAF 代理目标boolean isServer() 指示此目标是否表示服务器目标boolean isVirtualHost() 指示此目标是否表示虚拟主机目标服务器临时模式应用程序的临时模式会影响其部署行为使用 DeploymentOptions.setStageMode(stage mode) 可设置应用程序的临时行为,其中 stage mode 的值为下列值之一: STAGE - 强制将文件复制到目标服务器 NO_STAGE - 不将文件复制到目标服务器 EXTERNAL_STAGE - 手工暂存文件DConfigBean 验证DConfigBean 中的属性设置器将拒绝尝试设置无效值它包括属性类型验证,例如尝试将整数属性设置为一个非数字值某些属性可执行语义验证,例如确保最大值不小于与其关联的最小值模型包这些类是 javax.enterprise.deploy.model 接口的 WebLogic 。
