.war vs .ear文件

.war和.ear文件有什么区别?

375773 次浏览

WAR (web archive)文件包含servlet类文件、jsp (Java servlet页面)、HTML和图形文件以及其他支持文件。

EAR(企业存档)文件包含WAR文件以及包含代码的JAR文件。

这些文件中可能还有其他内容,但它们的意思基本上就是它们听起来的意思:WAR用于web类型的东西,EAR用于企业类型的东西(战争,代码,连接器等)。

从# EYZ0:

在J2EE应用程序中,模块根据其功能被打包为EAR、JAR和WAR

< p > JAR: 包含企业java bean(类文件)和EJB部署描述符的EJB模块被打包为扩展名为.jar

的JAR文件 < p >战争: 包含Servlet类文件、JSP文件、支持文件、GIF和HTML文件的Web模块被打包为JAR文件,扩展名为。war (Web存档)

< p >耳朵: 以上所有文件(. JAR和.war)都打包为一个扩展名为.ear(企业存档)的JAR文件,并部署到Application Server中

战争网档案。它根据servlet标准部署web应用程序。它是一个jar文件,包含一个名为web - inf的特殊目录和其中的几个文件和目录(web.xml, lib, classes),以及所有的HTML, JSP,图像,CSS, JavaScript和其他web应用程序的资源

耳朵-企业档案。它用于部署包含ejb、web应用程序和第三方库的企业应用程序。它也是一个jar文件,它有一个名为APP-INF的特殊目录,其中包含application.xml文件,它包含jar和war文件。

WAR(网络档案)是一个被加载到Java Application ServerWeb容器中的模块。Java应用服务器有两个容器(运行时环境)——一个是Web容器,另一个是EJB容器。

Web容器托管基于JSP或servlet API的Web应用程序——专门为Web请求处理而设计——所以更像分布式计算的请求/响应样式。Web容器要求将Web模块打包为WAR文件——这是一个特殊的JAR文件,在WEB-INF文件夹中有一个web.xml文件。

EJB容器承载了基于EJB API的企业java bean,旨在提供扩展的业务功能,如声明性事务、声明性方法级安全性和多协议支持——因此更像是RPC风格的分布式计算。EJB容器要求EJB模块打包为JAR文件——这些模块在META-INF文件夹中有一个ejb-jar.xml文件。

企业应用程序可能由一个或多个模块组成,这些模块可以是Web模块(打包为WAR文件),也可以是EJB模块(打包为JAR文件),或者两者都是。企业应用程序被打包为EAR文件——这些是特殊的JAR文件,在META-INF文件夹中包含一个application.xml文件。

基本上,EAR文件是包含WAR文件JAR文件的超集。Java应用服务器允许在WAR文件中部署独立的web模块,尽管在内部,他们创建EAR文件作为WAR文件的包装器。像Tomcat码头这样的独立web容器不支持EAR文件——它们不是成熟的应用服务器。这些容器中的Web应用程序只能作为WAR文件部署。

在应用服务器中,EAR文件包含应用程序安全角色映射、EJB引用映射和web模块的上下文根URL映射等配置。

除了Web模块和EJB模块外,EAR文件还可以包含封装为RAR文件的连接器模块和封装为JAR文件的客户机模块。

Ear文件提供了配置与应用程序服务器交互的更多选项。

例如:如果应用服务器的hibernate版本比依赖项提供的版本旧,您可以为JBOSS在ear-deployer-jboss-beans.xml中添加以下内容以隔离类加载器并避免冲突:

<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>

或者到src/main/application/META-INF/jboss-app.xml:

<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>

这将确保应用程序和应用服务器之间没有类加载器冲突。

通常,类加载器机制是这样工作的:

当一个类装入请求被提交给类装入器时,它首先 请求它的父类装入器来完成请求。父类,在 Turn向它的父类请求类,直到请求到达顶部 层次结构。如果类装入器位于层次结构的顶部 不能满足请求,则调用它的子类装入器

通过隔离类加载器,ear类加载器将不会查看父类(=JBoss /其他AS类加载器)。 据我所知,这对于war文件是不可能的

参考:# EYZ0

tar(磁带档案) —使用的格式为以fileName、fileSize、fileData为串行单位写入的文件 -不压缩。

Jar (java存档) -使用的压缩技术 -通常包含Java信息,如类/ Java文件。但可以包含任何文件和目录结构

战争(web应用程序档案) -类似于jar文件只有特定的目录结构,根据JSP/Servlet规范用于部署

ear(企业档案) -类似jar文件。目录结构符合J2EE要求,这样它就可以部署在J2EE应用服务器上。 -可以包含多个JAR和WAR文件

J2EE定义了三种类型的档案:

  1. Java Archives (JAR) JAR文件封装了一个或多个Java类、一个清单和一个描述符。JAR文件是最低级别的存档。JAR文件在J2EE中用于打包ejb和客户端Java应用程序。

  2. WAR文件类似于JAR文件,除了它们专门用于由servlet、jsp和支持类创建的Web应用程序之外。

  3. Enterprise Archives (EAR) " EAR文件包含组成特定J2EE应用程序的所有组件。

JAR文件

JAR (Java Archive的缩写)文件允许几个文件的组合 文件变成一个单一的。带有“。jar”的文件;扩展被 软件开发人员分发Java类和各种元数据。 它们还保存库和资源文件,以及附件文件 (例如属性文件).

用户可以使用Java Development kit提取和创建JAR文件 (JDK). jar命令。也可以使用ZIP工具

JAR文件有可选的清单文件。清单文件中的条目 规定JAR文件的用途。文件类的“主”类规范 表示该文件是一个分离的或“独立的”程序

WAR文件

WAR(或Web应用程序存档)文件可以包含XML (可扩展标记语言)文件,Java类,以及Java服务器 网页,供互联网应用之用。它也被用于标记 库和Web页面组成了Web应用程序。文件 “war # 39;扩展包含Web应用程序使用服务器或JSP (Java 服务器页)容器。它有JSP, HTML(超文本标记 语言)、JavaScript和用于创建上述内容的各种文件 网络应用。< / p > WAR文件的结构是这样的,以允许特殊目录和 文件。它还可能具有数字签名(非常类似于JAR文件)

EAR文件

EAR(企业存档)文件将JAR和WAR文件合并为一个 单一档案。这些文件带有' .ear'扩展有一个目录 元数据。这些模块被打包成一个存档,以便平滑和

.应用服务器中不同模块的同时操作 EAR文件也有部署描述符(是XML文件) 有效地指示了不同模块的部署

enter image description here

使项目传输、部署变得容易。 需要压缩成一个文件。 JAR (java存档).class文件组

. JAR文件组 WAR (web archive) -每个WAR代表一个web应用程序 -只使用web相关技术,如servlet, jsp可以使用。 -可以在Tomcat服务器上运行 web应用程序开发的web相关技术只有JSP servlet HTML js

.

.

.

EAR(企业存档)-每个EAR代表一个企业应用程序 -我们可以使用j2ee中的任何东西,比如ejb, JMS都可以愉快地使用。 -可以在Glassfish服务器上运行,而不是在Tomcat服务器上。 -任何技术开发的企业应用程序,从j2ee到所有web 应用程序加上ejbs JMS等。 -使用信息表示进行交易。如。银行应用程序,电信应用程序