2017-03-13 2 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を持っています.Aは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生成された要素をリスト(または長い/ MyObjectなどのMap)に保持するSpring @Component/@ServiceにJMSオブジェクト/メッセージを追加することもできます。これは次のようになります

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

    public MyObject getLatest(); 

    public MyObject get(long timestamp); 

    public List<MyObject> get(); 
} 

そこから、コントローラ/ビュー]セクションで - /現在ロードされたJMS-要素および取得するためのメソッドを取得/取得のいくつかの種類を使用し歴史が含まれている@Component/@Serviceをautowire例えば最後に送信された要素、および/または通過したすべてのJMSメッセージのリスト。これはコントローラの中で次のようなものになります。

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

関連する問題