1

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

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

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

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

4

1 回答 1

3

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

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

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

于 2013-04-05T08:11:05.697 回答