.war和.ear文件有什么区别?
当前回答
Ear文件提供了配置与应用程序服务器交互的更多选项。
例如:如果应用服务器的hibernate版本比依赖项提供的版本旧,您可以为JBOSS在ear-deployer-jboss-beans.xml中添加以下内容以隔离类加载器并避免冲突:
<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>
这将确保应用程序和应用服务器之间没有类加载器冲突。
通常,类加载器机制是这样工作的:
当一个类装入请求被提交给类装入器时,它首先被提交 请求它的父类装入器来完成请求。父类,在 Turn向它的父类请求类,直到请求到达顶部 层次结构。如果类装入器位于层次结构的顶部 不能满足请求,则调用它的子类装入器 负责加载类。
通过隔离类加载器,ear类加载器将不会查找父类(=JBoss /其他AS类加载器)。 据我所知,战争档案是不可能的。
其他回答
使项目的传输、部署变得容易。 需要压缩成一个文件。 JAR (java存档).class文件组
WAR (web存档)——每个WAR代表一个web应用程序 -只使用web相关技术,如servlet, jsp可以使用。 -可以在Tomcat服务器上运行 web应用程序开发的web相关技术只有JSP servlet HTML js - info只表示没有事务。
EAR(企业存档)——每个EAR代表一个企业应用程序 -我们可以使用j2ee中的任何东西,比如ejb, JMS都可以愉快地使用。 -可以在Glassfish服务器上运行,而不是在Tomcat服务器上。 -任何技术开发的企业应用程序,从j2ee到所有web 应用程序加上ejbs JMS等。 -使用信息表示进行交易。如。银行app,电信app
JAR文件
JAR (Java Archive的简称)文件允许将多个文件进行组合 文件变成一个单一的。带有“。jar”的文件;扩展被 软件开发人员分发Java类和各种元数据。 它们还保存库和资源文件,以及附件文件 (如属性文件)。
用户可以使用Java Development Kit的工具提取和创建JAR文件 (JDK). jar命令。也可以使用ZIP工具。
JAR文件有可选的清单文件。清单文件中的条目 规定JAR文件的用途。文件类的“主”类规范 将文件表示为分离的或“独立的”程序。
WAR文件
WAR(或Web应用程序存档)文件可以包含XML (可扩展标记语言)文件,Java类,以及Java服务器 网页,供互联网应用之用。它也被用于标记 库和Web页面组成了Web应用程序。文件 ”。war的扩展包含了与服务器或JSP使用的Web应用程序 服务器页)容器。它有JSP, HTML(超文本标记 语言)、JavaScript和用于创建上述内容的各种文件 Web应用程序。
WAR文件的结构是这样的,以允许特殊目录和 文件。它还可能具有数字签名(非常类似于JAR文件) 以显示代码的准确性。
EAR文件
EAR(企业存档)文件将JAR和WAR文件合并为一个 单一档案。这些文件带有'。Ear '扩展有一个目录 元数据。这些模块被打包成一个存档,以便平滑和 在应用服务器中同时操作不同的模块。
EAR文件还有部署描述符(XML文件) 它有效地规定了不同模块的部署。
战争网档案。它根据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.
J2EE定义了三种类型的档案:
Java Archives (JAR) JAR文件封装了一个或多个Java类、一个清单和一个描述符。JAR文件是最低级别的存档。JAR文件在J2EE中用于打包ejb和客户端Java应用程序。 Web Archives (WAR) WAR文件类似于JAR文件,除了它们专门用于由servlet、jsp和支持类构建的Web应用程序之外。 企业档案(EAR)“EAR文件包含组成特定J2EE应用程序的所有组件。