|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
JAVA文章
>>
JAVA基础
>> 文章正文
J2EE应用部署(一):基础篇
热
荐
【字体:
小
大
】
J2EE应用部署(一):基础篇
作者:佚名 文章来源:不详 点击数: 更新时间:2006-4-16
J2EE产品提供者
负责实现J2EE平台,包括在规范中定义的所有J2EE API和其他功能。比如,J2EE应用服务器的供应商。
应用组件提供者
负责提供J2EE组件,例如EJB应用或Web应用。J2EE规范中的许多角色都具有应用组件提供者的特征,比如文档编写者、JSP页面编写者、资源适配器开发者等。
应用组装者
负责把一个或者多个J2EE组件打包成EAR文件,构造出J2EE应用。应用组装者还要负责创建J2EE应用部署描述器,说明应用依赖的各种外部资源,比如类库、安全角色等。通常,应用组装者要用到J2EE产品提供者和工具提供者提供的工具。
工具提供者
提供自动化J2EE应用创建、打包、部署过程的工具,例如为EAR文件自动生成部署描述器的工具,自动创建EAR文件的工具。
部署者
负责把Web应用和EJB应用部署到服务器环境上。部署者不负责部署资源适配器包和应用客户端包,但可能要负责为这些组件进行额外的配置。这些组件虽然被打包成为J2EE EAR文件的一部分,部署企业应用时却不必考虑。它们是J2EE应用的一部分,但不必象Web应用和EJB容器那样经过一个“激活”过程。资源适配器包是置入合法JCA实现的简单库,虽然它们被打包进J2EE EAR文件,但它们不在J2EE容器环境下运行。因此,由于资源适配器包不包含J2EE容器,它们的激活不需要J2EE部署者的特别干预。应用客户端程序在J2EE容器的环境下运行,但它们不部署到应用服务器上。客户端程序独立运行,部署者不负责为这些程序配置容器环境。
系统管理员
负责为应用服务器和J2EE应用配置网络和运行环境,负责监视和维护J2EE应用的运行。
在本文的讨论过程中,我们主要的角色是应用组装者和部署者。
1.3 不能封装到EAR文件的组件
大多数基于Web的J2EE应用只由Web和EJB应用构成,EAR文件能够满足封装应用的基本需求。然而,EAR文件缺乏封装复杂J2EE应用的能力,比如,J2EE经常要用到下面这类组件,但它们无法在EAR文件中声明:
JDBC DataSource对象。
JMS ConnectionFactory和Destination对象。
JMX(Java Management Extension)的MBean。
在应用服务器之内运行的一些JMS消费者,例如作为ServerSession一部分运行的MessageConsumer。
当应用被部署或卸载时触发运行的一些类(这些类是供应商提供的私有扩展,没有在J2EE规范中定义,但供应商一般都提供它们)。
当前,这些组件必须由系统管理员通过专用管理接口手工配置和部署。随着时间的推移,这些组件的应用也将日益增加,为了支持应用的整体移植性,让EAR文件支持这些组件的封装也变得日益重要。
二、类装载模式
当一个类被引用时,Java虚拟机(JVM)必须装入被引用的类。JVM利用一个标准的类装入机制把类装入内存,这个从源文件装入Java类的机制称为类装载器。Java类可以从磁盘、网络或其他媒体装入,它们可以驻留在任何地方。多个类装载器可以按照父-子关系链接在一起,形成一种层次结构。由子类装载器装入的类能够看到(能够使用)由任意父类装载器装入的类;由父类装载器装入的类不能看到由任意子类装载器装入的类。类装载器、EAR文件与应用部署有着重要关系,因为应用服务器可能采用专用的类装载器部署应用模块。
如果在一个系统中,Web应用需要访问某个EJB,它就必须能够装入它所需要的那些类。由于这意味着不同模块之间的依赖关系,为了解决依赖问题,应用服务器必须为EAR类装载器考虑不同的结构方案。
独立的应用程序部署在它自己的类装载器中。这意味着,如果分别地部署一个Web应用和一个EJB应用,每个应用的类将分别装入各自的、级别相同的类装入器,Web应用内的类不能看到另一个类装载器装入的类。如果Web应用想要使用那些分开部署的EJB,就会出现问题。
在EAR文件出现之前,许多开发者先部署EJB,然后以Web应用WEB-INF\lib目录一部分的形式,再次封装同一EJB JAR文件。这样,同一类文件必须放入两个不同的地方,才能让应用正常地运行。显然,这是一种应当避免的情形。EAR文件的引入就是为了解决这个问题。EAR文件不仅是一种方便的封装格式,而且它还提供了一种特殊的类装载模式,允许EAR文件内的应用访问其他应用的类。
J2EE 1.3规范没有具体规定EAR类装载器应该如何运作。在决定类装入方式时,应用服务器供应商有着很大的自由。实现EAR类装载器之前,供应商必须决定:
EAR文件中所有应用的所有类由单一的类装载器装入,还是不同应用的文件由不同的类装载器装入?
在EAR文件中的不同应用之间,是否存在类装载器的父-子关系?例如,如果两个EJB应用依赖于log4j.jar,那么,是否应该由父类装载器装入log4j.jar,由子类装载器装入两个EJB应用,从而维持适当的可见性关系?
如果类装载器之间存在层次关系,那么这种层次关系允许扩展到什么程度?
多个EJB之间存在固有的关系,但Web应用没有。那么,EJB应用的装载方式是否应该和Web应用的不同,以便保持Web应用的完整性?
2.1 在EJB 2.0之前
在EJB 2.0 Public Final Draft 2之前,供应商在选择类装载模式方面有着很大的自由。如果JSP页面和Servlet要使用某个EJB,那么它们只需能够装入EJB的Home接口、远程接口、公共类和Stub类。这里所谓的公共类包括异常类、参数类等,它们应该放入一个依赖JAR文件,作为一个有着依赖关系的包装入。在这种模式下,供应商必须为依赖于EJB的Web应用选择一种装入Home接口、远程接口和Stub类的方式。
下面是这种类装载模式的一个简单实现(客户端应用在另一个虚拟机之内运行,与所有其他组件隔离,因此下面的模型不包含客户端应用的类装入过程。): 
上一页
[1]
[2]
[3]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
漫谈EJB (1)
下一篇文章:
Jboss下MS SQL Server配置指导
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
课程介绍(11): SL-351 Java数…
对一个简单的JDBC包装器的扩…
数据源在JDBC中的应用
JDBC系列教程(一)
Servlet中jdbc应用高级篇
选择开发移动应用程序的数据…
应用Java技术实现数据库应用…
如何用JDO开发数据库应用
jdbc应用--数据库连接全集
DB2中SQLJ应用示例
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd