Wepshpere:模块的加载顺序

Wepshpere: order of loading of modules

我们在两台具有相同 WAS v8.5.2.2 的不同 PC 上部署 .war(其中包含 jar 中的 ejb 组件)时遇到了恼人的问题

当我们在第一台 PC 上部署我们的应用程序时 - 一切看起来都很好,而在第二台 PC 上部署时 - 它失败了,因为它无法在环境中找到 ejb bean。

请务必注意,服务器配置完全相同。 但是模块的加载顺序是不同的: 在第一种情况下,它首先加载 ejb 模块(jar),然后加载 web 模块,在第二种情况下 - 反之亦然:

WebGroup SRVE0169I: Loading Web Module: UD-BACKGROUND-PROCESSES-SERVER. .....

WSVR0037I: Starting EJB jar: ud-background-processes-server-1.18.0_15914.war

我们认为这是失败的原因。

如何以及在哪里配置?

此外 - 有几次可以在不更改服务器配置的情况下以正确的顺序加载它!但是我们无法捕捉到这种行为变化的规律。

此外 .war(以及其中的 jars)既不包含特定于 Websphere 的配置文件(如 ibm-ejb-jar-bnd.xml)也不包含特定于 ejb 的文件(ejb-jar.xml).它仅使用注释 @Stateless\@EJB\@LocalBean 配置。

对这个问题有什么想法吗?

如果模块包含在同一个 application/EAR 中,则默认情况下,该应用程序中的 EJB 模块应在该应用程序中的 WAR 秒之前启动。

如果模块位于单独的应用程序中,那么您将需要 configure the application start weight 以确保 EJB 应用程序在 WAR 应用程序之前启动。

我们终于找到了这种行为的原因,并且通过关闭复选框值(参见图片)并重新启动服务器来更改加载顺序。

-----

-----

其实我们还不知道哪一个有意义