EAR 文件格式 简介

下面翻译自wikipedia

 

一种企业的存档-EAR,是一种文件模式,它用于 Java EE 来打包一个或者多个模块到一个档案文件,从而使发布到一个应用程序上的众多模块工作的更加协调和同步.EAR文件包含了称作部署描述符的一些 xml 文件,这些文件用来描述如何发布各个模块. Maven 和 Ant 都可以用来构建 EAR 文件.

 

文件结构

 

EAR 文件是一种标准的 JAR 文件,也就是 ZIP 文件,只是有了一个 .ear 的后缀.它包含了一个或者多个此条来代表应用程序的模块,还有一个称为 META-INF 的元数据目录来包含一个或者多个的部署描述符.

 

模块

服务器部署的不同模块都可以被嵌入到一个 EAR 文件:

 

  • web 模块.(后缀为 .war)  这是一个可部署的单元,包含了一个或者多个部件,其他的资源文件,以及一个网络应用程序的部署描述符. web 模块包含在一个体系之中,这个体系包含了多个目录和文件,并使用标准的网络应用程序格式.
  • POJO Java类可以部署在Jar文件里.(POJO: Plain Ordinary Java Object,不包含业务逻辑的简单Java对象)
  • EJB模块以 .jar为扩展名.它包含自己的 META-INF 目录描述,来描述持久化类的部署.部署之后,实体bean对于其他的组件可见,如果是远程输出,也对远程客户端可见.消息bean和会话bean对于远程的介入是可用的.
  • 资源适配器模块以 .rar 为扩展名.

类隔离

大部分的应用程序服务器都是从一个部署的 ERA 文件以一种Java类加载器组成孤立数的形式加载类,这样和别的应用程序来加以隔离,而不是对发布模块之间的共享类直接进行隔离.比如,一个部署的WAR 文件会创建这样一个类,它定义了一个包含在 EAR 文件中的 JAR 文件,但这些在其他的 EAR 文件中的 JAR 文件并不是必要的.这种行为的一个重要原因就是为了允许使用静态单例(比如 Log4j)的应用程序之间的完全隔离,否则的话就会混淆单独的应用程序之间的配置.这也使得应用程序和库的不同版本可以并行的发布.

对JBoss应用服务器值得关注的是它并不隔离部署的容器.通过一个 EAR 文件发布的网络应用程序可以得到别的EAR 或者 WAR 文件中的类.这是一个有点争议的策略.统一类加载器用来在类数据可以通过引用和拷贝共享的情况下,减少运行中应用程序之间的开销.这也同样避免了让开发人员必须去理解类加载器树的创建.但是,它也阻止了在独立应用程序上已经部署的独立库的不同版本.JBoss 4.0.2 切换到了分级的类加载器,但是到了 4..0.3 ,因为一些向后兼容的原因又回复到了统一的类加载器.现在有了一个配置选项来改变这种行为.

META-INF 目录

META-INF 目录至少要包含一个称为 Java EE 部署描述符的部署描述符 application.xml.它包含了如下的 xml 实体:

  • 图标,指明了代表应用程序图片的位置.一个分支有大图标和小图标组成.
  • 显示名称,用来定义应用程序.
  • 描述
  • 档案中每个模块的一个模块元素.
  • 0个或者多个安全角色元素,用于应用程序中的全局安全角色.
每个模块元素都包含了一个 ejb, web 或者 java 元素来描述在应用程序中自己的模块.web 模块还提供了了一个上下文根来通过他的 url 来标识web模块.

紧接着 Java EE 部署描述符可以有一个或者多个运行时部署描述符,用来配置特定的Java EE参数实施.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值