【问题标题】:Architecture of a Java EE projectJava EE 项目的体系结构
【发布时间】:2013-04-05 08:00:42
【问题描述】:

我有一个带有 EAR 和 4 个 WAR 的 Java EE 项目。我有一些在战争中使用的 pojo。它们是包含静态变量和方法的类,并且在 WAR 中应该是相同的。 它们应该放在哪里?

一些背景:我在其中一场战争中用常用的pojos继承了这个项目。但是,我希望所有 4 个 WAR 都引用一些新的静态访问类的同一个实例。这在其中一场战争中是不可能的,因为每个 WAR 似乎都采用了它自己的静态类的运行时实例,并且在一个 WAR 中更改类不会导致对另一个 WAR 中的类进行更改。

为了解决这个问题,我将其安装在一个 JAR 中并将其部署到服务器上。但是现在每次部署项目时,如果 JAR 发生了变化,也必须在服务器上构建并安装它。

在这里部署它的人不喜欢这种架构,我想知道是否有其他方法可以做到这一点?

【问题讨论】:

    标签: jakarta-ee architecture static war ear


    【解决方案1】:

    是的,WAR 文件将在各自的类加载器下加载,因此它们看不到彼此的类。

    您可以将 JAR 文件放在 EAR 的根目录中,并在每个 WAR 的清单中引用它。这些 JAR 有时称为“实用程序 JAR”。

    我同意这种自包含部署比在其他地方拥有单独的 JAR 文件更可取。

    【讨论】:

      最近更新 更多