WebSphere如何管理EJB jar的启动顺序?

时间:2015-05-06 05:34:15

标签: startup ejb-3.1 websphere-8

当一个耳朵包含两个ejb模块modulea.jar和moduleb.jar时。并且modulea.jar包含一个@Startup ejbX,它在bean启动期间从moduleb.jar调用另一个ejbY,它不是@Startup ejb,需要先启动moduleb.jar,否则应用服务器是不能将X注入Y.但是如何确保首先启动moduleb.jar?

目前我在WebSphere中遇到此问题,但我似乎找不到强制执行订单的方法。规范中有什么东西可以管理订单吗?

或者可能是WebSphere特定的(而不是供应商锁定)。也许在不同的模块中使用启动ejb和ejb是一个糟糕的设计,对此的一些见解也是受欢迎的。

1 个答案:

答案 0 :(得分:3)

可以通过模块配置中的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>

另见: