【发布时间】:2024-04-22 23:20:02
【问题描述】:
我们在 TomEE 1.7(基于 Tomcat 7)的 EAR 中部署了一个大型 Web 应用程序。该应用程序的基本结构是:
- 应用程序
- webapp1
- webapp2
- 库
- jar1
- jar2
- jar3
- 补丁.jar
应用程序共享公共 jar 的位置位于 lib 文件夹中。相当标准的 EAR 配置。为了使修复更容易,我们在 lib 文件夹中添加了一个名为“patch.jar”的 jar。然后,我们将修改 META-INF 文件夹中的 MANIFEST.MF 以配置明确的类路径并在前面放置 path.jar。这样,如果我们添加一个类,应用程序就会找到它。如果我们修复了一个类,我们会将更新后的类的副本放在 patch.jar 中,然后由于类路径指定,应用程序会首先找到更新的类并使用它。
这允许我们在交付补丁时,只交付一个 JAR。更小、更快、更安全(因为我们只提供少量更新的类,而不是整个应用程序)。
当我们在 JBoss 中部署时,这工作得很好,但现在我们已经转移到 TomEE,我们无法让它工作。它似乎总是忽略任何类路径指定。有没有办法做到这一点——为 TomEE EAR 应用程序指定一个显式的类路径,以便应用程序按顺序搜索 jar 列表?
提前致谢!
【问题讨论】:
标签: tomcat classpath openejb apache-tomee