.WAR VS .ear文件(.war vs .ear file)

2019-08-21 18:57发布

是什么一个.war和.ear文件之间的区别?

Answer 1:

从GeekInterview :

在J2EE应用程序中,模块根据各自的功能封装成EAR,JAR和WAR

JAR:包含企业Java Bean(类文件)和EJB部署描述EJB模块打包为以.jar extenstion JAR文件

WAR:包含Servlet类文件的Web模块,JSP文件,支持文件,GIF和HTML文件打包为的.war(Web归档)扩展JAR文件

EAR:上述所有文件(的.jar和.war)被打包为的.ear(企业档案)扩展JAR文件并部署到应用服务器。



Answer 2:

一个WAR(Web归档)是被加载到一个模块Web容器 A的Java应用服务器 。 Java应用程序服务器有两个容器(运行时环境) - 一个是Web容器,另一个是一个EJB容器。

基于JSP或Servlet的API Web容器主机的Web应用程序-用于网络请求处理专门设计-因此更多的分布式计算的请求/响应样式 。 一个Web容器需要打包为一个WAR文件的Web模块-这是一个特殊的JAR文件web.xml在文件WEB-INF文件夹中。

所以更多的分布式计算的RPC风格 -基于EJB API旨在提供扩展的业务功能,如声明式事务,声明方法级别的安全性和多协议支持EJB容器主机企业Java Beans。 EJB容器需要EJB模块打包为JAR文件 -这些有ejb-jar.xml在文件META-INF文件夹中。

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

基本上,EAR文件是包含WAR文件JAR文件的超集。 Java应用程序服务器允许在WAR文件独立的Web模块的部署,但在内部,他们创造EAR文件作为各地WAR文件的包装。 独立的Web容器,如Tomcat的和码头不支持EAR文件-这些都不是成熟的应用程序服务器。 这些容器中的Web应用程序将被部署为WAR文件只。

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

除了Web模块和EJB模块,EAR文件还可以包含打包为打包成JAR文件,RAR文件和客户端模块的连接器模块。



Answer 3:

战争 - Web归档。 它是用来根据servlet的标准来部署Web应用程序。 它是一种含有特殊的目录中的jar文件名为WEB-INF和几个文件和目录里面(web.xml中,LIB,班),以及所有的HTML,JSP,图像,CSS,JavaScript和Web应用程序的其它资源

耳朵 - 企业归档。 它是用于部署EJB的包含企业应用程序,Web应用程序和第三方库。 这也是一个jar文件,它有所谓的APP-INF一个特殊的目录包含application.xml文件,它包含的jar和war文件。



Answer 4:

WAR(Web存档)文件包含servlet类文件,JSP(的Java servlet页),HTML和图形文件和其他支持文件。

EAR(企业档案)文件包含WAR文件包含代码的JAR文件一起。

可能还有其他的东西在这些文件中,但它们基本上意味着他们听起来像什么他们的意思是:对于网络型的东西,耳朵企业类型的东西(的战争,代码,连接器等)WAR。



Answer 5:

请参阅: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html

焦油(磁带归档) - 格式采用的是写在文件名,档案大小,FILEDATA的串行设备文件 - 无压缩。 是巨大的

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

战争(Web应用程序存档) - 类似像jar文件只有特定的目录结构为每个JSP / Servlet规范进行部署的目的

耳(企业档案) - 类似像jar文件。 有目录结构如下J2EE要求,以便它可以在J2EE应用服务器进行部署。 - 可以包含多个JAR和WAR文件



Answer 6:

JAR文件

一个JAR(简称Java归档)文件允许的几个文件组合成一个单一的一个。 用“的.jar”文件; 扩展是由软件开发人员用于分布Java类和各种元数据。 这些也持库和资源文件,以及附属文件(如属性文件)。

用户可以提取并创建Java开发工具包的(JDK)“的.jar”命令JAR文件。 还可以使用ZIP工具。

JAR文件具有可选清单文件。 清单文件中的条目规定的JAR文件的使用。 用于文件A类“主”类规范表示文件作为分离的或“独立”的程序。

WAR文件

一战(或Web应用程序归档)文件可以包含XML(可扩展标记语言)文件,Java类,以及Java服务器页面对互联网应用的目的。 它也用来纪念图书馆和网页从而弥补了一个Web应用程序。 用“的.war”扩展名的文件包含与服务器或JSP(Java服务器页面)容器使用的Web应用程序。 它具有JSP,HTML(超文本标记语言),JavaScript和各种文件用于创建上述Web应用程序。

WAR文件的结构为这样,对于特殊的目录和文件。 它也可能有一个数字签名(很像一个JAR文件),以显示代码的真实性。

EAR文件

一个EAR(企业档案)文件合并JAR和WAR文件合并为一个存档。 用“的.ear”扩展这些文件的元数据目录。 这些模块被打包成上归档为应用服务器中的不同模块的平滑且同时操作。

EAR文件也拥有部署描述符(这是XML文件),它有效地决定了不同模块的部署。



Answer 7:

EAR文件中提供更多的选项来配置与应用服务器之间的交互。

例如:如果应用程序服务器的休眠版本比你的依赖所提供的一个旧的,你可以添加以下到耳部署-的jboss-beans.xml文件的JBOSS隔离和类加载器避免冲突:

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

或为src /主/应用/ 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> 

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

通常情况下,类加载器的机制是这样的:

当一个类加载请求被提交给一个类加载器,它首先要求它的父类加载器来完成请求。 家长又要求其父为类,直到请求到达层次结构的顶部。 如果在层次结构的顶部的类加载器无法完成请求,然后调用它的子类加载器是负责加载类。

通过隔离的类加载器,你的耳朵类加载器将不会在父看(=的JBoss /其他AS类加载器)。 据是我所知道,这是不可能的战争文件。



Answer 8:

J2EE定义了三种档案:

  1. 的Java归档文件(JAR)的JAR文件封装一个或多个Java类,清单和描述符。 JAR文件归档的最低水平。 JAR文件在J2EE用于包装EJB和客户端的Java应用程序。

  2. 网络档案(WAR)WAR文件类似于JAR文件,但它们是专门针对的Servlet,JSP和支持类制成的Web应用程序。

  3. 企业档案(EAR)“EAR文件包含所有构成一个特定的J2EE应用程序的组件。



Answer 9:

为了使项目运输,部署变得容易。 需要压缩成一个文件。 JAR(Java归档)的.class文件组

WAR(Web归档) - 每战代表一个Web应用程序 - 只使用网络的相关技术,如,Servlet,可以使用的JSP。 - 可以Tomcat服务器上运行 - 信息仅供没有交易 - 由网络相关的技术只有JSP servlet的HTML JS开发的Web应用程序。

EAR(企业档案) - 每战代表一个企业应用程序 - 我们可以像EJB的J2EE使用任何东西,可以恰当地使用JMS。 - 可以在Glassfish像服务器不是Tomcat服务器上运行。 - 从任何J2EE技术​​类的东西全部的web应用程序加上EJB的JMS等devloped企业应用程序 - 做交易与信息表示。 例如。 银行应用,电信应用



文章来源: .war vs .ear file