如何将消耗的消息从jmslistener显示到我的视图?

时间:2017-03-13 07:34:16

标签: spring spring-mvc activemq

@JmsListener(destination = MyQUEUE)
public void receiveMessage(final Message<MyObject> message) throws JMSException {
     MyObject response = message.getPayload();
    //what to do next..
}

我一直坚持这个问题。我有2个客户端A和B.一个发送消息给B和B消耗使用@JmsListener的消息,然后B消耗了我希望在我的视图中显示它的消息(.jsp)。有人可以帮助我,实现这个的最佳方法是什么。谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定你对此的要求是什么;但是你可以将JMS对象/消息添加到Spring new_d = ','.join(d.rsplit('.', 1)) 中,它将JMS生成的元素保存在列表中(或者使用例如long / MyObject的Map)。这类似于:

@Component/@Service

从那里,在控制器/视图部分 - 自动装备包含历史/当前加载的JMS元素的class JmsPersister { private Map<Long, MyObject> allOfMyJmsObjects; public MyObject getLatest(); public MyObject get(long timestamp); public List<MyObject> get(); } 并使用某种get / fetch方法以获得例如最新提交的元素和/或传递的所有JMS消息的列表。这转换为类似的东西(在控制器内):

@Component/@Service

我猜这就是我想解决的问题。

答案 1 :(得分:0)

尝试按照以获取侦听器类中的消息

@JmsListener(destination = "inbound.queue")
public void receiveMessage(final Message jsonMessage) throws JMSException {
    String messageData = null;
    if(jsonMessage instanceof TextMessage) {
        TextMessage textMessage = (TextMessage)jsonMessage;
        messageData = textMessage.getText();
    }
        //code to use messageData goes here
    }

另请看这里 - Spring Jms Example