当前位置:  开发笔记 > 编程语言 > 正文

.war vs .ear文件

如何解决《.warvs.ear文件》经验,为你挑选了8个好方法。

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



1> Rutesh Makhi..:

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

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

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

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

基本上,EAR文件是包含WAR文件JAR文件的超集.Java应用程序服务器允许在WAR文件中部署独立的Web模块,但在内部,它们创建EAR文件作为WAR文件的包装.Tomcat和Jetty等独立Web容器不支持EAR文件 - 这些文件不是完整的应用程序服务器.这些容器中的Web应用程序仅作为WAR文件部署.

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

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


+1,因为此答案描述了您可能想要使用其中一个的原因.
@KNU是的,`.jar`,`.war`和`.ear`文件是简单的zip存档,因此可以由任何可以处理普通.zip文件的程序打开.
我可以使用7Zip/WinZip/WinRar等提取它们(例如fileName.jar)吗?

2> elhoim..:

来自GeekInterview:

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

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

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

EAR:以上所有文件(.jar和.war)打包为带有.ear(企业归档)扩展名的JAR文件,并部署到Application Server中.


这篇文章让我觉得EAR只是JARS和WARS在一个大的EAR中,我认为并不那么简单.
所有本质上都是归档(JAR),但具有不同的扩展意味着它们的性质/内容.

3> David Rabino..:

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

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



4> paxdiablo..:

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

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

这些文件中可能还有其他内容,但它们基本上意味着它们的含义:对于Web类型的东西的WAR,对于企业类型的东西的EAR(WAR,代码,连接器等).


在我的情况下,我总是在WEB-INF/lib文件夹中使用jar部署WAR,这是有效的.那么我为什么要使用EAR存档?
@swapyonubuntu,如果您只是部署单个Web应用程序(更具体地说,是单个servlet上下文),那么只执行WAR文件没有任何问题.对于成熟的企业应用程序,包括那些拥有许多Web应用程序的应用程序,EAR文件更好.

5> Joby Wilson ..:

JAR文件

JAR(Java Archive的缩写)文件允许将多个文件组合成一个文件.带有'.jar'的文件; 软件开发人员利用扩展来分发Java类和各种元数据.这些还包含库和资源文件,以及附件文件(例如属性文件).

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

JAR文件具有可选的清单文件.清单文件中的条目规定了JAR文件的使用.文件类的"主"类规范将文件表示为分离或"独立"程序.

WAR文件

WAR(或Web应用程序归档)文件可以包括XML(可扩展标记语言)文件,Java类以及用于Internet应用程序的Java Server页面.它还用于标记构成Web应用程序的库和Web页面.带有".war"扩展名的文件包含用于服务器或JSP(Java Server Page)容器的Web应用程序.它具有JSP,HTML(超文本标记语言),JavaScript和用于创建上述Web应用程序的各种文件.

WAR文件的结构如此,以允许特殊目录和文件.它也可能具有数字签名(非常类似于JAR文件)以显示代码的准确性.

EAR文件

EAR(Enterprise Archive)文件将JAR和WAR文件合并到一个存档中.这些带有".ear"扩展名的文件有一个元数据目录.这些模块被打包到存档中,以便在app服务器中顺利和同时操作不同的模块.

EAR文件还具有部署描述符(XML文件),它们有效地规定了不同模块的部署.

在此输入图像描述



6> simpleDev..:

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

tar(磁带存档) - 使用的格式是以fileName,fileSize,fileData的串行单位编写的文件 - 无压缩.可以是巨大的

Jar(java archive) - 使用的压缩技术 - 通常包含类/ class/java文件之类的java信息.但是可以包含任何文件和目录结构

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

ear(企业档案) - 类似于jar文件.具有遵循J2EE要求的目录结构,以便可以在J2EE应用程序服务器上部署它. - 可以包含多个JAR和WAR文件



7> Mark..:

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

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

    
  true

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




    loader=nameofyourear.ear
java2ParentDelegation=false

 

这将确保应用程序和应用程序服务器之间不存在类加载器冲突.

通常,类加载器机制的工作方式如下:

当类加载请求被呈现给类加载器时,它首先要求其父类加载器来完成请求.反过来,父级会向其父级询问该类,直到请求到达层次结构的顶部.如果层次结构顶部的类加载器无法满足请求,则调用它的子类加载器负责加载类.

通过隔离类加载器,您的耳朵类加载器将不会查看父类(= JBoss /其他AS类加载器).据我所知,战争档案是不可能的.



8> 小智..:

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

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

    Web归档(WAR) WAR文件与JAR文件类似,不同之处在于它们专门用于由Servlet,JSP和支持类构成的Web应用程序.

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

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有