【问题标题】:Returning status from long-running session bean method从长时间运行的会话 bean 方法返回状态
【发布时间】:2012-05-29 16:39:02
【问题描述】:

我在 Glassfish 3.1.2 上运行带有 RichFaces 4.2.2 的 JSF 2.0。我已经创建了本地无状态会话 bean,它具有一个将由 JSF 托管 bean 调用的长时间运行的方法。

我希望能够将状态信息从会话 bean 推送回托管 bean,以便我可以使用 RichFaces a4j:push 之类的东西将状态信息发送到浏览器。我相信这将要求对会话 bean 方法的调用是异步的。当会话 bean 处理方法调用时,是否有将信息从会话 bean 推送回前端的模式?

【问题讨论】:

    标签: session jsf ejb status long-running-processes


    【解决方案1】:

    Stateless 会话 bean (SLSB) 不应保持任何状态(读取:由方法更改的实例变量),因为它们在应用程序范围内的所有客户端之间共享。因此,如果您需要具有某种状态的会话 bean,您可以在此过程中对其进行更新,并且客户端可以随时请求,那么它们对您毫无用处。您需要一个 stateful 会话 bean (SFSB)。如果您将 SFSB 注入到会话范围的 JSF 托管 bean 中,那么您将能够从它请求正确的状态,并在整个 HTTP 会话期间将其推送到客户端。

    要更好地了解 SLSB 和 SFSB 之间的区别,您可能会发现此答案很有帮助:JSF request scoped bean keeps recreating new Stateful session beans on every request?

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多