2017-03-13 21 views
0
@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)中显示的消息。有人可以帮助我,什么是最好的方式来实现这一点。谢谢!如何显示从jmslistener到我的视图使用的消息?

+0

你有没有考虑使用网络插座?这是我能够成像的唯一方法。我无法告诉你这是如何在Spring中工作的,但参考文档中有一整章:http://docs.spring.io/spring/docs/4.1.7.RELEASE/spring-framework-reference/html/ websocket.html –

回答

0

我不确定你的要求是什么;但是你也许可以将JMS对象/消息添加到将JMS生成的元素保存在列表中(或包含例如long/MyObject的Map)的Spring @Component/@Service。这是类似的:

class JmsPersister { 
    private Map<Long, MyObject> allOfMyJmsObjects; 

    public MyObject getLatest(); 

    public MyObject get(long timestamp); 

    public List<MyObject> get(); 
} 

从那里,在控制器/视图部分 - 自动装配包含历史/当前加载JMS的元素,并使用某种形式获得/取出,以获得方法@Component/@Service如最新提交的元素和/或通过的所有JMS消息的列表。这tranlates中这样的事情(控制器内):

class JmsExposerController { 
    @Resource 
    private JmsPersister persister; 
    ... 
    ... 
} 

这就是我如何将已经解决了它,我猜。

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

相关问题