在同一应用程序中从一个 WAR 文件调用另一个 WAR 文件中的方法
Calling methods from one WAR file in another WAR file within the same application
我正在使用 WebSphere 8.5
我将在一个 EAR 文件中包含 2 个 War 文件。我将拥有一些对 War 文件通用的代码。我试图在下面解释一个可能的结构。
War1
package P1
Common-package C1 (*Dependent on P1)
War2
package P2 (Needs to access C1)
我想只在 War1 中保留通用包,并从 War2 中调用它。似乎无法从 War2 访问 C1(class 未找到错误)。如果我将 C1 放在两个 War 文件之外,那么两个 War 文件都可以访问 C1。由于 C1 依赖于 P1,我不确定我能做到这一点。有没有办法从一个 War 文件中访问另一个文件中的通用包?
如果您根本不需要隔离,WebSphere 提供了一个设置来为应用程序(包括 EAR 和所有 WAR)使用单个 class 加载程序 - 本文档中的第 5 项:https://www.ibm.com/docs/en/was-nd/8.5.5?topic=loading-configuring-application-class-loaders
如果您的 WAR 依赖于某些 API 的单独版本,或者如果它们需要单独的静态变量,那将对您不起作用,但如果不是,那应该可以满足您的需要。当然,您也可以简单地将必要的共享包放入两个 WAR 中,或者将公共代码移动到 EAR 以及 move/copy 依赖项。
我正在使用 WebSphere 8.5
我将在一个 EAR 文件中包含 2 个 War 文件。我将拥有一些对 War 文件通用的代码。我试图在下面解释一个可能的结构。
War1
package P1
Common-package C1 (*Dependent on P1)
War2
package P2 (Needs to access C1)
我想只在 War1 中保留通用包,并从 War2 中调用它。似乎无法从 War2 访问 C1(class 未找到错误)。如果我将 C1 放在两个 War 文件之外,那么两个 War 文件都可以访问 C1。由于 C1 依赖于 P1,我不确定我能做到这一点。有没有办法从一个 War 文件中访问另一个文件中的通用包?
如果您根本不需要隔离,WebSphere 提供了一个设置来为应用程序(包括 EAR 和所有 WAR)使用单个 class 加载程序 - 本文档中的第 5 项:https://www.ibm.com/docs/en/was-nd/8.5.5?topic=loading-configuring-application-class-loaders
如果您的 WAR 依赖于某些 API 的单独版本,或者如果它们需要单独的静态变量,那将对您不起作用,但如果不是,那应该可以满足您的需要。当然,您也可以简单地将必要的共享包放入两个 WAR 中,或者将公共代码移动到 EAR 以及 move/copy 依赖项。