java - 在浏览器中显示传入的 JMS 消息

标签 java servlets jms

我们通过 JMS 使用请求-响应通信模型与外部系统合作。

假设,用户从浏览器向一个队列发送一条请求消息(通过导航到映射到相应 servlet 的某个 URL)。然后,有一个 MDB 异步接收另一个 JMS 队列上的消息。有没有办法返回发起请求的用户并在同一 session 中的浏览器中显示该消息?

到目前为止,我想到的唯一一件事就是将此响应保存在数据库中。然后,最初触发请求的 servlet 将等待数据可用并尽快显示。

但是有没有其他干净的方法而不使用中间存储来实现这一点?

更新

请求队列和响应队列不同。它们之间的唯一联系是响应包含与请求中相同的 JMS correlationID

最佳答案

我不知道您是否可以解决将响应存储在数据库中的问题。我们在应用程序中执行类似的操作,将相关 ID 附加到 session ,浏览器进行 ajax 调用来检查数据库中的响应更新。到目前为止,我们的扩展效果非常好。

http 的 rqeuest 响应性质与异步消息处理并不齐头并进。不过我还没有尝试过像 WebSockets 这样的东西。

关于java - 在浏览器中显示传入的 JMS 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018333/

相关文章:

java - ServiceLoader 真的动态加载提供者吗?

java - return 语句的极其奇怪的行为 : Java

java - 小服务程序 : overwrite existing cookie

javascript - 在 jsp 中显示来自 servlet 的范围的动态单元格颜色

java - java servlet中初始化参数的使用

java - 将 JMS 消息转换为 IBM PCF

java - 安卓改造失败()

java - 如何在java中使用newAPIHadoopRDD?

java - 基于中间件的 HTTP/JMS 混合 SOAP 的请求-回复模型

java - Spring JMS订阅者无法接收消息?