【问题标题】:Are CDI Events available across classloadersCDI 事件是否跨类加载器可用
【发布时间】:2013-08-02 00:03:20
【问题描述】:

我有一个相当直截了当的问题。假设我的应用程序 A 将其付款调用委托给另一个应用程序 B。应用程序 A 需要完成一些付款后履行。两个应用程序都是单独的 EAR。应用程序 B 是否有可能触发由应用程序 A 观察到的 CDI 事件。此外,许多其他应用程序也使用支付应用程序,这些应用程序也需要侦听他们感兴趣的事件。您将如何过滤以确保应用程序 Z 不会尝试捕获用于应用程序 A 的事件。我将不胜感激

【问题讨论】:

    标签: cdi


    【解决方案1】:

    直截了当的回答:不。不同的类加载器都不能访问事件和 bean。在 Seam 3 中,我们的解决方案是通过 JMS 桥接事件。我很确定新的 JMS 规范和实现可以做到这一点。

    【讨论】:

    • 哦,我不会这么快 ;) 通常这是真的。但是,如果您考虑在其中有一个带有 AppA 和 AppB 的 EAR,并且它们在共享的 ear/lib 中都有它们的 @ApplicationScopeds bean,那么这是可能的。在这种情况下,您在此类共享库中的 AppB bean 观察者将获得由 AppA 触发的事件,即使它们具有不同的 WebApp 类加载器(但相同的共享耳库类加载器)。但总的来说,Jason 至少在不相关的应用程序方面是绝对正确的。他们彼此看不到任何东西。
    • 谢谢马克!当谈到 CDI 时,EAR 是完全不同的一堆泥巴 :) 很多事情都是一样的,有些则不然。
    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2021-02-17
    • 2018-05-06
    • 2016-01-01
    相关资源
    最近更新 更多