.war和.ear文件有什么区别?
.war和.ear文件有什么区别?
Answers:
在J2EE应用程序中,模块根据其功能打包为EAR,JAR和WAR。
JAR:包含企业Java Bean(类文件)和EJB部署描述符的EJB模块打包为具有.jar扩展名的JAR文件。
WAR:包含Servlet类文件,JSP文件,支持文件,GIF和HTML文件的Web模块打包为具有.war(网络档案)扩展名的JAR文件。
EAR:以上所有文件(.jar和.war)都打包为扩展名为.ear(企业归档)的JAR文件,并部署到Application Server中。
一个WAR(Web归档)是被加载到一个模块Web容器 A的Java应用服务器。Java Application Server具有两个容器(运行时环境)-一个是Web容器,另一个是EJB容器。
该Web容器承载基于JSP或Servlets API的Web应用程序- 这些Web应用程序是专门为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文件 -这些是特殊的JAR application.xml
文件,在META-INF
文件夹中包含一个文件。
基本上,EAR文件是包含WAR文件和JAR文件的超集。Java Application Server允许在WAR文件中部署独立的Web模块,尽管在内部,它们创建EAR文件作为WAR文件的包装。诸如Tomcat和Jetty之类的独立Web容器不支持EAR文件-这些不是成熟的Application Server。这些容器中的Web应用程序仅应作为WAR文件进行部署。
在应用程序服务器中,EAR文件包含诸如Web模块的应用程序安全角色映射,EJB参考映射和上下文根URL映射之类的配置。
除了Web模块和EJB模块之外,EAR文件还可以包含打包为RAR文件的连接器模块和打包为JAR文件的客户端模块。
.jar
,.war
和.ear
文件是简单的ZIP压缩文件,因此能够通过,可以处理普通.zip文件的任何程序中打开。
战争-网络存档。它用于根据Servlet标准部署Web应用程序。它是一个jar文件,其中包含一个名为WEB-INF的特殊目录,并且其中包含几个文件和目录(web.xml,lib,类)以及该Web应用程序的所有HTML,JSP,图像,CSS,JavaScript和其他资源
耳朵-企业档案。它用于部署包含EJB,Web应用程序和第3方库的企业应用程序。它也是一个jar文件,它有一个名为APP-INF的特殊目录,其中包含application.xml文件,并且包含jar和war文件。
WAR(网络归档)文件包含Servlet类文件,JSP(Java Servlet页面),HTML和图形文件以及其他支持文件。
EAR(企业归档)文件包含WAR文件以及包含代码的JAR文件。
这些文件中可能还有其他内容,但是它们的基本含义是听起来像什么:WAR用于Web类型的东西,EAR用于企业类型的东西(WAR,代码,连接器等)。
JAR文件
JAR(Java存档的缩写)文件允许将多个文件组合成一个文件。带“ .jar”的文件;扩展被软件开发人员用来分发Java类和各种元数据。这些文件还包含库和资源文件,以及附件文件(例如属性文件)。
用户可以使用Java Development Kit(JDK)的“ .jar”命令提取和创建JAR文件。也可以使用ZIP工具。
JAR文件具有可选的清单文件。清单文件中的条目规定了JAR文件的使用。文件类的“主”类规范将文件表示为独立程序或“独立”程序。
WAR文件
WAR(或Web应用程序存档)文件可以包含XML(可扩展标记语言)文件,Java类以及用于Internet应用程序的Java Server页面。它还用于标记组成Web应用程序的库和Web页面。扩展名为“ .war”的文件包含用于服务器或JSP(Java服务器页面)容器的Web应用程序。它具有JSP,HTML(超文本标记语言),JavaScript和用于创建上述Web应用程序的各种文件。
WAR文件的结构可以允许特殊目录和文件。它还可能具有数字签名(非常类似于JAR文件的数字签名),以显示代码的准确性。
EAR文件
EAR(企业归档)文件将JAR和WAR文件合并到单个归档中。这些扩展名为'.ear'的文件具有元数据目录。这些模块被打包到存档文件中,以使应用服务器中的不同模块平稳并同时运行。
EAR文件还具有部署描述符(它们是XML文件),可以有效地指示不同模块的部署。
请参阅:http : //www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar(磁带归档文件)-使用的格式是以文件名,文件大小,文件数据的串行单位写入的文件-不压缩。可以很大
Jar(Java存档)-使用的压缩技术-通常包含Java信息,例如class / java文件。但可以包含任何文件和目录结构
战争(Web应用程序档案)-类似的jar文件仅具有用于部署目的的按照JSP / Servlet规范的特定目录结构
耳朵(企业档案)-类似jar文件。具有遵循J2EE要求的目录结构,以便可以将其部署在J2EE应用程序服务器上。-可以包含多个JAR和WAR文件
耳文件提供了更多选项来配置与应用程序服务器的交互。
例如:如果应用程序服务器的休眠版本比依赖关系提供的版本早,则可以将以下内容添加到ear-deployer-jboss-beans.xml中,以供JBOSS隔离类加载器并避免冲突:
<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>
这将确保您的应用程序和应用程序服务器之间没有类加载器冲突。
通常,类加载器机制的工作方式如下:
将类加载请求提交给类加载器时,它首先要求其父类加载器满足该请求。父级继而向其父级请求类,直到请求到达层次结构的顶部。如果层次结构顶部的类加载器无法满足该请求,则调用它的子类加载器负责加载该类。
通过隔离类加载器,您的耳朵类加载器将不会出现在父类中(= JBoss /其他AS类加载器)。据我所知,这对于war文件是不可能的。
为了使项目运输,部署变得容易。需要压缩成一个文件。JAR(Java存档)组的.class文件
WAR(Web存档)-每个战争代表一个Web应用程序-仅使用与Web相关的技术,例如servlet,jsps。-可以在Tomcat服务器上运行-由Web相关技术开发的Web应用程序仅jsp servlet html js-仅信息表示无事务。
EAR(企业归档文件)-每个耳朵代表一个企业应用程序-我们可以使用j2ee中的任何东西(例如ejb),可以愉快地使用jms。-可以在Glassfish之类的服务器上运行,而不能在Tomcat服务器上运行。-使用任何技术开发的企业应用程序,例如所有Web应用程序以及ejbs jms等j2ee的任何内容-使用信息表示进行事务处理。例如。银行应用,电信应用
.JAR, .WAR and .EAR
您的信息,您还可以观看视频教程。这非常简单或更容易理解。它将说明.JAR,.WAR和.EAR之间的区别是什么视频教程:.JAR,.WAR和.EAR之间的区别