【问题标题】:How WebSphere manages startup order of EJB jars?WebSphere 如何管理 EJB jar 的启动顺序?
【发布时间】:2015-07-16 02:13:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: startup ejb-3.1 websphere-8


    【解决方案1】:

    可以通过模块配置中的Starting weight进行配置(Enterprise Applications > YourApplication > Manage Modules > ejbmoduleb.jar

    起始体重

    指定模块在服务器启动时的顺序 开始。起始重量最小的模块先启动。

    如果您需要整个应用程序之间的顺序依赖,您可以在Startup behavior 应用程序配置中设置Startup order (Enterprise Applications > YourApplication > Startup behavior)

    启动顺序

    指定应用程序在服务器启动时的顺序 开始。启动顺序就像一个起始重量。应用程序 起始重量最低的先开始。

    如果您计划使用application.xml 部署描述符,请将以下条目添加到描述符并以正确的顺序提供模块。

    <initialize-in-order>true</initialize-in-order>
    

    另见:

    【讨论】:

    • 感谢@Gas 非常清晰和完整的解决方案。现在可以了。还找到了一种解决方法,首先部署耳朵,其中只有缺少的 EJB jar。之后整个耳朵都起作用了。
    猜你喜欢
    • 2013-03-13
    • 2019-09-13
    • 2014-10-24
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多