当一个ear包含两个ejb模块modulea.jar和moduleb.jar时。 modulea.jar 包含一个 @Startup ejbX,它从 moduleb.jar 调用另一个 ejbY(不是 @Startup ejb),在 bean X 启动期间,需要首先启动 moduleb.jar,否则应用服务器将被启动无法将X注入Y。但是如何确保moduleb.jar首先启动?
目前我在WebSphere 中遇到了这个问题,但我似乎无法找到执行命令的方法。规范中有管理订单的内容吗?
或者可能是 WebSphere 特定的(但没有锁定供应商)。也许有一个启动 ejb 和一个在不同模块中使用的 ejb 是一个糟糕的设计,对此的一些见解也很受欢迎。
可以通过配置它Starting weight
在模块配置中(Enterprise Applications > YourApplication > Manage Modules > ejbmoduleb.jar
)
起始重量
指定服务器启动时模块的启动顺序
开始。首先启动具有最低启动权重的模块。
如果您需要整个应用程序之间的顺序依赖关系,您可以设置Startup order
在里面Startup behavior
应用程序配置(Enterprise Applications > YourApplication > Startup behavior
)
启动顺序
指定服务器启动时应用程序的启动顺序
开始。启动顺序就像起始重量。应用程序
首先从最低起始重量开始。
如果您打算拥有application.xml
部署描述符将以下条目添加到描述符中并按正确的顺序提供模块。
<initialize-in-order>true</initialize-in-order>
也可以看看:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)