REST端点实例之间的通信

时间:2015-03-24 19:54:15

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您必须将会话持久保存到某些外部存储(如Redis),并在各种系统组件之间传递会话标识符。处理此类请求时,您可以从存储中加载会话状态并相应地继续。

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