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



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

-已安装.ear.destination, [目标文件夹]

到目标文件夹中已安装的应用程序。

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

[目标文件夹]/testapp.ear/

testapp.war/[我的内容]

为什么创建此 .ear 和 .war 文件夹以及如何安装应用程序以使 [我的内容] 存在于 [目标文件夹] 中?

WebSphere Application Server 傳統版只執行耳朵檔案。因此,当您通过管理控制台或 wsadmin 安装 .war 文件时,它会将其包装在 ear 文件中,以便它可以在运行时处理它。

以下内容确实表明了自己:

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

这将使您更接近,尽管应用程序存档中仍然存在文件扩展名的问题。

托马斯·比通蒂

这是 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 存储算法在存储嵌套存档时会自动使用压缩。 最常见的情况是为具有两级压缩的部署提供嵌套存档。

最新更新