【问题标题】:Communication between REST endpoint instancesREST 端点实例之间的通信
【发布时间】:2015-03-24 19:54:15
【问题描述】:

客户端连接到 JAX-RS 端点以检索数据。此端点使用 EJB 访问数据库并执行逻辑,然后将数据返回到端点。

Client <----> Rest Endpoint <----> EJB

在将数据返回给客户端之前,我需要将数据传递给另一个 Endpoint 实例(连接到此 Rest Endpoint 的另一个客户端)。我想将此保留为 REST 服务,但我面临两个问题:

  • REST 端点是无状态的。因此没有会​​话与端点链接。但是,这可以通过 上下文注入(效率不高)或传递 userID 作为参数来解决。
  • 没有通信方法。 有 WebSockets,但它如何帮助我在服务器上的 Sessions 之间进行通信?有 JMS,但据我了解,它适用于不同的应用程序而不是会话。

我在问什么:有没有办法在不同的 REST(或 EJB)实例/会话之间进行通信?如果有,怎么做?

【问题讨论】:

    标签: java web-services rest session jakarta-ee


    【解决方案1】:

    您必须将会话持久化到某些外部存储(如 Redis),并在各个系统组件之间的每个请求中传递会话标识符。处理此类请求后,您可以从存储中加载会话状态并进行相应处理。

    大多数 EJB/Servlet 容器都允许您打开会话持久性。

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 2018-08-22
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多