为什么.ear和.war文件夹是为WebSphere上安装的应用程序创建的?

时间:2016-07-15 14:17:07

标签: websphere war ear wsadmin

我正在使用wsadmin工具安装应用程序(.war文件),而我正在使用选项

  

-installed.ear.destination,[目标文件夹]

在目标文件夹中安装应用程序。

但是在安装应用程序之后,我的Web内容的最终文件夹结构就像

  

[目标文件夹] /testapp.ear/testapp.war/ [我的内容]

为什么会创建.ear和.war文件夹,如何安装应用程序以便[目录文件夹]中存在[我的内容]?

3 个答案:

答案 0 :(得分:5)

WebSphere Application Server传统仅运行ear文件。因此,当您通过管理控制台或wsadmin安装.war文件时,它会将其包装在ear文件中,以便它可以在运行时处理它。

答案 1 :(得分:0)

这是IBM WebSphere Application Server应用程序部署体系结构的一部分。

作为应用程序部署的一部分,应用程序服务器将应用程序文件放在便于运行应用程序的结构中。这意味着可以轻松访问所有模块,并且可以轻松访问Web模块中的文件。

对于EJB JAR文件,文件结构中没有额外的分层:EJB JAR文件的所有元素都可以通过Java提供的JAR / ZIP API访问。需要解压缩应用程序的每个EJB JAR文件,但不需要解压缩EJB JAR文件中的元素。

对于WAR文件,WEB-INF / lib文件夹中还有一层JAR文件。访问这些Web模块库JAR需要将JAR文件放置为公开文件。

此外,WAR文件的某些资源在文件集中公开,以便从未设置为处理JAR文件的代码区域轻松访问。最突出的是,JSP文件在磁盘上公开,以便JSP编译器可以轻松访问它们。

最终结果是部署的应用程序的文件扩展了应用程序结构的两层:EAR文件本身被扩展,EAR中的WAR文件被扩展。 JAR类型文件(EJB JAR,应用程序库JAR,应用程序客户机JAR以及在EAR中打包但不在应用程序库文件夹中打包的简单实用程序JAR)不会扩展。

有可能构建一个更复杂的API来访问嵌套存档文件(JAR文件中的JAR文件,或者或多或少相同的ZIP文件中的ZIP文件),它将应用程序的嵌套内容视为文件系统的扩展。这种策略存在两个问题。或者,必须根据需要将嵌套存档扩展到临时位置,或者嵌套存档必须以非压缩格式存储在嵌套存档中。这两个步骤是必需的,因为ZIP文件格式不支持对存档在其他存档中的存档的搜索,其中存档允许在嵌套存档上使用压缩。由于执行了两个级别的压缩,因此可以在嵌套存档上进行搜索,而无需删除嵌套存档上的级别压缩。

可以设置工具以在存储嵌套存档时防止压缩,但通常不会这样做。并且,归档通常具有足够的规律性,默认ZIP存储算法在存储嵌套归档时自动使用压缩。最常见的情况是为具有两级压缩的部署提供嵌套归档。

答案 2 :(得分:0)

以下确实表明了这一点:

Rename the target application to the target folder name.
Set the target folder name to the parent of the target folder.

例如:

Original target folder: /appsDir/appContent
Original application name: testapp.ear

Modified target folder: /appsDir
Modified application name: appContent.ear

这会让你更接近,但是,应用程序存档上仍然存在文件扩展名的问题。

Thomas Bitonti