小编典典

Java .war和.ear文件

java

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


阅读 345

收藏
2020-03-16

共2个答案

小编典典

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

JAR:包含企业Java Bean(类文件)和EJB部署描述符的EJB模块打包为具有.jar扩展名的JAR文件。

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

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

2020-03-16
小编典典

一个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文件 -这些是特殊的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文件的客户端模块。

2020-03-16