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


当前回答

WAR (Web Archive)是一个被加载到Java应用程序服务器的Web容器中的模块。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和Jetty这样的独立web容器不支持EAR文件——它们不是成熟的应用服务器。这些容器中的Web应用程序只能作为WAR文件部署。

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

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

其他回答

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

Java Archives (JAR) JAR文件封装了一个或多个Java类、一个清单和一个描述符。JAR文件是最低级别的存档。JAR文件在J2EE中用于打包ejb和客户端Java应用程序。 Web Archives (WAR) WAR文件类似于JAR文件,除了它们专门用于由servlet、jsp和支持类构建的Web应用程序之外。 企业档案(EAR)“EAR文件包含组成特定J2EE应用程序的所有组件。

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

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

从GeekInterview:

In J2EE application, modules are packaged as EAR, JAR, and WAR based on their functionality JAR: EJB modules which contain enterprise java beans (class files) and EJB deployment descriptor are packed as JAR files with .jar extension WAR: Web modules which contain Servlet class files, JSP Files, supporting files, GIF and HTML files are packaged as a JAR file with .war (web archive) extension EAR: All the above files (.jar and .war) are packaged as a JAR file with .ear (enterprise archive) extension and deployed into Application Server.

WAR (Web Archive)是一个被加载到Java应用程序服务器的Web容器中的模块。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和Jetty这样的独立web容器不支持EAR文件——它们不是成熟的应用服务器。这些容器中的Web应用程序只能作为WAR文件部署。

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

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

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

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

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

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

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