@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)。有人可以帮助我,实现这个的最佳方法是什么。谢谢!
答案 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