嵌套在另一个 .ear 文件中的 .ear 文件中的 .war 文件是否是有效配置?

Is a .war file nested in a .ear file nested inside another .ear file ever a valid configuration?

我使用过一些 J2EE 应用程序,但我自己从未设计和构建过一个,也不精通这些应用程序背后的实际结构。

我支持需要从 WebSphere 6 服务器迁移到 WebSphere 8.5 服务器的 J2EE 应用程序。

在跟踪我在 8.5 服务器测试版的应用程序日志文件中发现的错误时。我决定查看 WebSphere 服务器上的 .ear 文件内部,查看 .ear 文件内部的 .war 文件,然后查看 web.xml 文件可能是个好主意在 .war 文件中查看配置变量的值,根据源代码树,该变量应该存在。

我惊讶地发现 .war 文件不在 .ear 文件中。我更惊讶地看到另一个.ear 文件嵌套在.ear 文件中。然后,当我查看那个嵌套的 .ear 文件时,.war 文件就在那里。

这个故事还有更多内容,但这让我印象深刻,好像它必须是此应用程序过去的某人所犯的构建错误或部署错误。

有什么方法可以证明这是一个有效的配置吗?

不,那是无效的。 EAR 文件可能包含其他 module-level 档案,例如 WAR、EJB JAR、RAR 或库 JAR,但它可能不包含其他 EAR 文件。

此处有更多详细信息:https://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html