以下部分概述了 WebLogic Server® 应用程序和基本概念。
文档适用范围及受众
此文档是专门为要使用 Sun Microsystems 的 Java 2 Platform Enterprise Edition (J2EE) 来构建 WebLogic Server 电子商务应用程序的应用程序开发人员撰写的。本文档假定读者了解 Web 技术、面向对象的编程技术和 Java 编程语言。
WebLogic Server 应用程序是由 Java 编程人员、Web 设计人员和应用程序汇编人员创建的。编程人员和设计人员创建用于实现应用程序业务逻辑和显示逻辑的模块。应用程序汇编人员将模块汇编到可在 WebLogic Server 中部署的应用程序中。
WebLogic Server 和 J2EE 平台
WebLogic Server 实现了 Java 2 Platform, Enterprise Edition (J2EE) version 1.4 技术。J2EE 是基于 Java 编程语言开发多层企业应用程序的标准平台。构成 J2EE 的技术是由 Sun Microsystems 及其他软件供应商(包括 BEA Systems)协同开发的。
WebLogic Server J2EE 应用程序构建于标准化、模块化组件基础之上。WebLogic Server 提供了用于上述模块的全套服务,无需编程就可以自动处理许多应用程序行为细节。
J2EE 以通用、可移植的方式对模块行为和打包情况进行了定义,从而将运行时配置推迟至真正在应用服务器上部署模块时。
J2EE 包括 Web 应用程序、EJB 模块、Web Service、企业应用程序、客户端应用程序和连接器的部署规范。J2EE 并未指定如何在目标服务器上部署应用程序,仅指定了如何打包标准模块或应用程序。
对于每种模块类型,上述规范定义了必需的文件及其在目录结构中的位置。
注意: | 因为 J2EE 是后向兼容的,所以仍可在 WebLogic Server 8.1 版及更高版本中运行 J2EE 1.4 应用程序。 |
Java 不依赖于平台,所以可在任一平台上编辑和编译代码,还可在运行于其他平台上的开发 WebLogic Server 中测试应用程序。例如,无论应用程序最终部署到什么平台,在运行 Windows 或 Linux 的 PC 中开发 WebLogic Server 应用程序都是很常见的事情。
有关详细信息,请参阅 J2EE 1.4 规范,其访问地址为:http://java.sun.com/j2ee/download.html#platformspec。
J2EE 应用程序及模块概述
BEA WebLogic Server™ J2EE 应用程序是由下列任一模块或运行在 WebLogic Server 上的应用程序构成的:
-
Web 应用程序模块 - HTML 页面、Servlet、JavaServer 页和相关文件。请参阅 Web 应用程序模块。 -
Enterprise Java Bean (EJB) 模块 - 实体 Bean、会话 Bean 和消息驱动 Bean。请参阅 Enterprise JavaBean 模块。 -
连接器模块 - 资源适配器。请参阅连接器模块。 -
企业应用程序 - Web 应用程序模块、EJB 模块、资源适配器和已打包到应用程序中的 Web Service。请参阅企业应用程序。 -
Web Service - 请参阅 WebLogic Web Service。
WebLogic 应用程序也可包括下列 WebLogic 特定模块:
-
JDBC 和 JMS 模块 - 请参阅 JMS 和 JDBC 模块。 -
WebLogic 诊断框架(WebLogic Diagnostic Framework,简称 WLDF)模块 - 请参阅 WebLogic 诊断框架模块。
Web 应用程序模块
WebLogic Server 上的 Web 应用程序包括下列文件:
Servlet
Servlet 是可在 WebLogic Server 中执行的 Java 类,还可用来接受来自客户端的请求,对请求进行处理,有时还可向客户端返回响应。HttpServlet 最常用于应 Web 浏览器的请求生成动态 Web 页。
JavaServer 页
JavaServer 页(JavaServer Page,简称 JSP)是用扩展 HTML 进行编码的 Web 页,用其可将 Java 代码嵌入网页。JSP 可以调用一种称为标记库的自定义 Java 类(使用类似于 HTML 的标记)。appc 编译器用于编译 JSP 并将其转换为Servlet。WebLogic Server 可在没有 Servlet 类文件或其旧于 JSP 源文件时自动编译 JSP。请参阅使用 wlappc 生成模块和应用程序。
也可对 JSP 进行预编译,并将 Servlet 类打包到 Web 应用程序 (WAR) 文件中,以免在服务器中进行编译。Servlet 和 JSP 可能需要其他辅助类,还须与 Web 应用程序一同部署这些辅助类。
有关 Web 应用程序模块的详细信息
Enterprise JavaBean 模块
Enterprise JavaBean (EJB) Bean 是服务器端 Java 模块,用于实现业务任务或业务实体,是按 EJB 规范编写的。有三种类型的 EJB:会话 Bean、实体 Bean 和消息驱动 Bean。
EJB 概览
会话 Bean 可在单个会话期间代表单个客户端执行特定业务任务。会话 Bean 可以是有状态 Bean 或无状态 Bean,但不具有持久性;客户端用完会话 Bean 后,该 Bean 即会消失。
实体 Bean 用于代表数据存储(通常是关系数据库系统)中的业务对象。持久性(加载并保存数据)可以通过 Bean 或容器来管理。实体 Bean 不只是在内存中代表数据对象,它还具有为其所代表的业务对象建立行为模型的方法。多个客户端可以同时访问实体 Bean,根据定义实体 Bean 还具有持久性。
容器可以创建消息驱动 Bean 的实例,也可从池中指定一个实例,以处理消息。在 JMS 目标中收到消息后,消息驱动 Bean 会从池中指定其本身的实例,以处理消息。消息驱动 Bean 未与任何客户端相关联。它们只是在消息到达时对其进行处理。
EJB 和 WebLogic Server
J2EE 将开发角色和部署角色明确区分开来,以确保可在支持 EJB 规范的 EJB 服务器之间移植模块。如果要在 WebLogic Server 中部署 EJB,则必须运行 WebLogic Server appc
编译器,以生成用于实施 EJB 安全性、事务和生命周期策略的类。请参阅使用 wlappc 生成模块和应用程序。
由 J2EE 指定的部署描述符 ejb-jar.xml
描述了打包在 EJB 应用程序中的企业 Bean。它定义了 Bean 的类型、名称,及其 Home 接口、远程接口和实现类的名称。ejb-jar.xml
部署描述符定义了 Bean 的安全角色,以及 Bean 方法的事务行为。
其他部署描述符提供了 WebLogic 特定部署信息。weblogic-cmp-rdbms-jar.xml
部署描述符(对于容器管理的实体 Bean 是唯一的)用于将 Bean 映射到数据库中的表。weblogic-ejb-jar.xml
部署描述符提供了特定于 WebLogic Server 环境的其他信息,如 JNDI 绑定名称、群集和缓存配置。
有关 Enterprise JavaBean 的详细信息,请参阅“WebLogic Enterprise JavaBean 编程”。
连接器模块
连接器(也称为资源适配器)用于容纳 Java 模块,如有必要,还可以容纳与企业信息系统 (EIS) 进行交互所需的本地模块。J2EE 应用程序通过部署在 WebLogic Server 环境中的资源适配器能够访问远程 EIS。WebLogic Server 应用程序开发人员可使用 HTTP Servlet、JavaServer 页 (JSP)、Enterprise Java Bean (EJB) 和其他 API 开发使用 EIS 数据和业务逻辑的集成应用程序。
要将资源适配器部署到 WebLogic Server 中,必须先创建并配置 WebLogic Server 特定的部署描述符(weblogic-ra.xml 文件),然后将此文件添加到部署目录中。可将资源适配器作为独立模块或作为企业应用程序的一部分部署到 WebLogic Server 中。请参阅企业应用程序。
有关连接器的详细信息,请参阅 WebLogic 资源适配器编程。
企业应用程序
企业应用程序由一个或多个 Web 应用程序模块、EJB 模块和资源适配器构成。其中也可能包括客户端应用程序。企业应用程序是由 application.xml 文件定义的,该文件是企业应用程序的标准 J2EE 部署描述符。如果应用程序包括 WebLogic Server 特定扩展,则该应用程序将由 weblogic-application.xml 文件进一步定义。包括客户端模块的企业应用程序还将具有 client-application.xml 部署描述符和 WebLogic 运行时客户端应用程序部署描述符。请参阅企业应用程序部署描述符元素。
为了进行生产和开发,即使对于独立 Web 应用程序、EJB 和资源适配器,BEA 也建议将其作为企业应用程序的一部分进行打包和部署。这样可以利用 BEA 的新拆分开发目录结构,这种结构可以大大促进应用程序开发。请参阅创建拆分开发目录环境。
企业应用程序由 Web 应用程序模块、EJB 模块和资源适配器构成。可按下列方式对其进行打包:
-
对于开发目的,BEA 建议采用 WebLogic 拆分开发目录结构。拆分开发目录具有两个将源文件和输出文件分离开来的并行目录,而不是有一个单一的 EAR 归档文件或展开的 EAR 目录结构。这种目录结构已针对单个 WebLogic Server 实例上的开发进行了优化。请参阅创建拆分开发目录环境。BEA 提供 wlpackage Ant 任务,通过该任务不必使用 JAR 实用工具就可以创建 EAR;这只能用于拆分开发目录结构。请参阅使用 wlpackage 打包应用程序。 -
对于开发目的,BEA 还建议将独立 Web 应用程序和 Enterprise JavaBean (EJB) 作为企业应用程序的一部分进行打包,以便利用拆分开发目录结构。请参阅在拆分开发目录中组织 J2EE 组件。 -
对于生产目的,BEA 建议采用展开的(未归档的)目录格式。通过这种格式,不必重新部署应用程序就能更新文件。要更新归档文件,必须取消文件的归档,更新文件,然后重新将其归档和部署。 -
可使用 jar 实用工具将应用程序打包为带有.ear
扩展名的 JAR 归档文件。归档文件易于分发,占用的空间也较小。EAR 文件含有应用程序的全部 JAR、WAR 和 RAR 模块归档文件,以及用于描述捆绑模块的 XML 描述符。请参阅使用 wlpackage 打包应用程序。
META-INF/application.xml
部署描述符含有每个 Web 应用程序、EJB 和连接器模块的元素,以及用于描述安全角色和应用程序资源(如数据库)的其他元素。请参阅企业应用程序部署描述符元素。
WebLogic Web Service
Web Service 可由基于 Web 的分布式应用程序共享,还可用作其模块。它们通常可与现有后端应用程序(如客户关系管理系统、订单处理系统等)对接。Web Service 可以驻留在不同计算机上,并可由多种截然不同的技术实现,但打包和传输这些服务都使用 HTTP 等标准 Web 协议,以使 Web 上的任何用户都能轻松地访问它们。请参阅 WebLogic Server 的 Web Service 编程。
-
由 Web 上的服务器承载的 Web Service 实现。WebLogic Web Service 是由 WebLogic Server 承载的。Web Service 模块可以包括 Java 类或实现 Web Service 的 EJB。Web Service 可作为 Web 应用程序归档文件(Web Application archive,简称 WAR)或 EJB 模块 (JAR) 进行打包,这取决于实现情况。有关详细信息,请参阅 WebLogic Server 的 Web Service 编程。 -
用于在 Web Service 和 Web Service 的用户之间传送数据和 Web Service 调用的标准。WebLogic Web Service 使用简单对象访问协议 (SOAP) 1.1 作为消息格式,使用 HTTP 作为连接协议。 -
向客户端描述 Web Service,以便客户端可以进行调用的标准。WebLogic Web Service 使用 Web Service 描述语言 (WSDL) 1.1(是一种基于 XML 的规范)描述其本身。 -
客户端调用 Web Service 的标准 (JAX-RPC)。 -
查找和注册 Web Service 的标准 (UDDI)。
JMS 和 JDBC 模块
自 WebLogic Server 9.0 起,已将 JMS 和 JDBC 配置作为模块来存储,这两种配置分别由符合 weblogic-jmsmd.xsd
和 weblogic-jdbc.xsd
Schema 的 XML 文件对其进行定义。这些模块类似于标准 J2EE 模块。管理员可将 JMS 和 JDBC 模块作为全局系统资源、作为与 J2EE 应用程序(作为已打包资源)打包在一起的模块,或作为可供全局使用的独立模块来创建和管理。通过 JMS 和 JDBC 资源的模块化部署,可在不同环境之间迁移应用程序和所需的 JMS 和 JDBC 配置,如从测试环境迁移到生产环境,而无需打开企业应用程序文件(如 EAR 文件)或 JMS 和 JDBC 独立模块,也不用进行大量手工 JMS 和 JDBC 重新配置。
应用程序开发人员可在企业级 IDE 或其他支持编辑 XML 文件的开发工具中创建应用程序模块,然后将 JMS 或 JDBC 模块与应用程序打包在一起,然后将该应用程序传送给 WebLogic 管理员进行部署。
WebLogic 诊断框架模块
WebLogic 诊断框架(WebLogic Diagnostic Framework,简称 WLDF)提供了一些功能,用于生成、收集、分析和持久保存来自 BEA WebLogic Server 实例以及部署到服务器实例的应用程序的诊断数据。对于服务器作用域的诊断,某些 WLDF 功能是在配置域的过程中配置的。其他功能是作为可定位到服务器(或群集)的系统资源描述符来配置的。对于应用程序作用域的诊断,诊断功能是作为应用程序的资源描述符来配置的。
应用程序作用域的测量是作为诊断模块(类似于诊断系统模块)来配置和部署的。但是,应用程序模块是在名为 weblogic-diagnostics.xml
的 XML 配置文件中配置的,该配置文件与应用程序归档文件打包在一起。
有关为应用程序配置测量的详细说明,请参阅配置应用程序作用域测量。
XML 部署描述符
部署配置是指定义将企业应用程序部署到特定 WebLogic Server 域中所需的部署描述符值的过程。应用程序或模块的部署配置存储在三种类型的 XML 文档中:J2EE 部署描述符、WebLogic Server 描述符和 WebLogic Server 部署计划。本部分描述 J2EE 和 WebLogic 特定部署描述符。有关部署计划的信息,请参阅部署计划。
模块和应用程序都有部署描述符(XML 文档),以描述目录或 JAR 文件的内容。部署描述符是采用 XML 标记格式的文本文档。J2EE 规范定义了 J2EE 模块和应用程序的标准可移植部署描述符。对于在 WebLogic Server 环境中部署模块或应用程序,BEA 定义了其他 WebLogic 特定部署描述符。
表 1-1 列出了模块和应用程序类型,及其 J2EE 标准和 WebLogic 特定部署描述符。
| ||
注意: | 上表列出的 WebLogic 部署描述符的 XML Schema 包括 weblogic-j2ee.xsd Schema 中的元素,该 Schema 描述的是所有 WebLogic 特定部署描述符共有的公用元素。 |
对模块或应用程序进行打包时,首先要创建用于存储部署描述符的目录,即 WEB-INF
或 META-INF
,然后在该目录中创建 XML 部署描述符。
自动生成部署描述符
WebLogic Server 中有各种用于自动生成部署描述符的工具。下一部分将讨论这些工具。
EJBGen
EJBGen 是一种 Enterprise JavaBean 2.0 代码生成器,也是一种用 Javadoc 标记生成 EJB 部署描述符文件的命令行工具。可用 Javadoc 标记对 Bean 类文件进行批注,然后用 EJBGen 为 EJB 应用程序生成 Remote 和 Home 类,以及部署描述符文件,从而将编辑和维护 EJB .java 和描述符文件所需的文件减少到一个。请参阅“WebLogic Enterprise JavaBean 编程”中的 EJBGen 参考。
基于 Java 的命令行实用工具
WebLogic Server 中有一套基于 Java 的命令行实用工具,用于为 Web 应用程序和企业应用程序自动生成标准 J2EE 和 WebLogic 特定部署描述符。
这些命令行实用工具可以检查在临时目录中已汇编的类,还可以基于 Servlet 类等生成相应的部署描述符。这些实用工具包括:
以 DDInit 为例,假定已创建名为 c:\stage
的目录,其中含有构成 Web 应用程序的 JSP 文件和其他对象,但尚未创建 web.xml
和 weblogic.xml
部署描述符。要自动生成上述描述符,请执行以下命令:
prompt> java weblogic.marathon.ddinit.WebInit c:\stage
该实用工具生成 web.xml
和 weblogic.xml
部署描述符,并将其放在 WEB-INF
目录中,如果该目录尚不存在,则 DDInit
将创建该目录。
从以前版本的 J2EE 和 WebLogic Server 中升级部署描述符
这样应用程序就能利用当前 J2EE 规范和 WebLogic Server 版本中的功能,BEA 建议在将应用程序迁移到新版 WebLogic Server 中时始终升级部署描述符。
要升级 J2EE 应用程序和模块中的部署描述符,请先用 weblogic.DDConverter
工具生成已升级的部署描述符,将其放在临时目录中。检查已升级的部署描述符,确保其正确之后,请将 J2EE 模块归档文件或含新部署描述符文件的展开的目录重新打包。
prompt> java weblogic.DDConverter [options
]archive_file_or_directory
其中的 archive_file_or_directory
是指归档文件(EAR、WAR、JAR 或 RAR),或企业应用程序、Web 应用程序、EJB 或资源适配器的展开的目录。
下表描述了 weblogic.DDConverter
命令选项。
下例所示的是如何用 weblogic.DDConverter
命令为 my.ear
企业应用程序生成已升级的部署描述符,将其放在当前目录的子目录 tempdir
中:
prompt> java weblogic.DDConverter -d tempdir my.ear
部署计划
部署计划是一个 XML 文档,用于对特定的 WebLogic Server 环境定义应用程序的 WebLogic Server 部署配置。部署计划不在应用程序归档文件中,可以将更改应用到存储在应用程序的现有 WebLogic Server 部署描述符中的部署属性。管理员可用部署计划轻松地对特定环境更改应用程序的 WebLogic Server 配置,但不用修改现有 J2EE 或 WebLogic 特定部署描述符。可用多个部署计划重新配置单个应用程序,以便将其部署到多个不同的 WebLogic Server 环境中。
编程人员完成应用程序编程之后,会导出其部署配置,以创建自定义部署计划,此后管理员会用其将应用程序部署到新的 WebLogic Server 环境中。编程人员将应用程序部署文件和自定义部署计划分发给部署人员(如测试管理员、临时管理员或生产管理员),这些人员将部署计划用作对其环境配置应用程序的蓝图。
BEA WebLogic Server 提供下列工具来帮助编程人员导出应用程序的部署配置:
开发软件
本部分介绍用于开发 WebLogic Server 应用程序的必需和可选工具。
Apache Ant
通过 WebLogic Server 生成应用程序的首选 BEA 方法是使用 Apache Ant。Ant 是一种基于 Java 的生成工具。Ant 是用 Java 类而不是基于外壳的命令扩展的,这是 Ant 的一个优点。BEA 提供大量的 Ant 扩展类,帮助您在 WebLogic Server 拆分开发目录环境中对应用程序进行编译、生成、部署和打包。
Ant 是一种跨平台工具,这是另一优点。开发人员可用可扩展标记语言 (XML) 编写 Ant 生成脚本。XML 标记用于定义要生成的目标、目标之间的依赖关系,以及为生成目标而执行的任务。Ant 库已与 WebLogic Server 捆绑在一起,以便我们的客户可以很轻松地生成现成的 Java 应用程序。
要使用 Ant,必须先设置环境,方法为执行 setExamplesEnv.cmd
(Windows) 或 WL_SERVER
\samples\domains\wl_server
目录中的 setExamplesEnv.sh
(UNIX),其中的 WL_SERVER
是指 WebLogic Server 安装目录。
有关 ant 功能的完整说明,请参阅:http://jakarta.apache.org/ant/manual/index.html
注意: | Apache Jakarta 网站仅发布最新 Ant 版本的联机文档,该 Ant 版本可能不同于与 WebLogic Server 捆绑在一起的 Ant 版本。WebLogic 环境设置完毕后,可用以下命令确定与 WebLogic Server 捆绑在一起的 Ant 版本: |
注意: | prompt> ant -version |
注意: | 要查看特定 Ant 版本(如随 WebLogic Server 附带的版本)的文档,请从 http://archive.apache.org/dist/ant/binaries/ 下载 Ant zip 文件,然后解压缩该文档。 |
有关用 Ant 编译跨平台脚本,或用跨平台脚本创建可由 Ant 处理的 XML 脚本的详细信息,请参阅任一 WebLogic Server 示例,如 WL_HOME
/samples/server/examples/src/examples/ejb20/basic/beanManaged/build.xml
。
也可参阅以下有关用 Ant 生成示例的 WebLogic Server 文档:WL_HOME
/samples/server/examples/src/examples/examples.html
。
使用第三方 Ant 版本
如果与 WebLogic Server 捆绑在一起的 Ant 版本不足以达成目的,则可使用自己的 Ant 版本。要确定与 WebLogic Server 捆绑在一起的 Ant 版本,请在设置 WebLogic 环境后运行以下命令:
prompt> ant -version
如果打算使用另一版本的 Ant,则可用该文件的已更新版本替换 WL_HOME
\server\lib\ant
目录中的相应 JAR 文件(其中的 WL_HOME
是指 WebLogic 安装主目录,如 c:\bea\weblogic90
),或将新文件添加到 CLASSPATH 前。
更改 Ant 堆大小
默认情况下,环境脚本对 Ant 分配的堆大小为 128 MB。通过设置本地 ANT_OPTS
环境变量中的 -X
选项,可增大或减小自己项目中的堆大小值。例如:
prompt> setenv ANT_OPTS=-Xmx128m
如果要永久地设置堆大小,请向用于设置环境的脚本中添加 MEM_ARGS
变量或更新该变量,启动 WebLogic Server 等,如以下用于启动 WebLogic Server 实例的 Windows 命令脚本中的代码段:
set MEM_ARGS=-Xms32m -Xmx200m
有关使用 MEM_ARGS
变量的示例,请参阅 WL_HOME
/server/bin
中的脚本和命令。
源代码编辑器或 IDE
需要用文本编辑器编辑 Java 源文件、配置文件、HTML 或 XML 页,以及 JavaServer 页。首选的编辑器是可以妥当处理 Windows 和 UNIX 行尾差异的编辑器,但对编辑器没有其他特殊要求。可用纯文本编辑器或 DreamWeaver 之类的网页编辑器编辑 HTML 或 XML 页以及 JavaServer 页。对于 XML 页,也可以使用带 DTD 验证功能的企业级 IDE 或其他支持 XML 文件编辑的开发工具。
数据库系统和 JDBC 驱动程序
几乎所有 WebLogic Server 应用程序都需要数据库系统。可使用任一可通过标准 JDBC 驱动程序访问的 DBMS,但 WebLogic Java 消息服务 (JMS) 之类的服务需要受支持的 Oracle、Sybase、Informix、Microsoft SQL Server、IBM DB2 或 PointBase 的 JDBC 驱动程序。要了解受支持的数据库系统和 JDBC 驱动程序,请参阅 Support Configuration。
Web 浏览器
大多数 J2EE 应用程序都是设计为由 Web 浏览器客户端来执行的。WebLogic Server 支持 HTTP 1.1 规范,并已用最新版的 Netscape Communicator 和 Microsoft Internet Explorer 浏览器进行了测试。
为应用程序编写要求时,请注意所要支持的 Web 浏览器版本。请在测试计划中添加针对每个受支持版本的测试计划。请明确版本号和浏览器配置。应用程序是否会支持安全套接口层 (SSL) 协议?在浏览器中测试备用安全设置,以便向用户说明所支持的选项。
如果应用程序采用 Applet,则测试所要支持的浏览器配置尤为重要,因为嵌入各种浏览器中的 JVM 均有所不同。要求用户安装 Sun 的 Java 插件,以使所有人的 Java 运行时版本都相同,这是一种解决方案。
第三方软件
可用第三方软件产品增强 WebLogic Server 开发环境。请参阅 BEA WebLogic Developer Tools Resources,其中提供了有关支持 BEA 应用服务器的产品的开发人员工具信息。
要下载上述某些工具,请参阅 BEA WebLogic Server Downloads,其访问地址为 。
注意: | 请与软件供应商进行核实,以验证与自己平台和 WebLogic Server 版本的软件兼容性。 |