2014-02-20 61 views
0

有沒有辦法在訂閱期間將除activemq消息以外的一些變量傳遞給onMessage方法?說如果我有一個啓動和停止這個客戶端的GUI,並且我想在消息監聽器中改變某些東西,如果我點擊了gui中的一個按鈕。有什麼我可以做到這一點?Java,activemq,在訂閱期間更改消息偵聽器的設置

public void onMessage(Message message) { 
    // TODO Auto-generated method stub 
    try { 
     if (message instanceof TextMessage) { 
      TextMessage textMessage = (TextMessage) message; 
    // how to swith between setting 1 and setting 2??  
    //setting 1 
    //save message to file   
    //setting 2  
      System.out.println("Received message" + textMessage.getText() 
        + "'"); 

     } 
    } catch (JMSException e) { 
     System.out.println("Caught:" + e); 
     e.printStackTrace(); 
    } 
} 

最好的問候,

+0

https://activemq.apache.org/delay-and -schedule-message-delivery.html – Vitaly

+0

謝謝,但這個例子實際上並沒有描述我想要做什麼....確切的故事是,我有一個gui,當我想改變消息監聽器中的一些設置時點擊一個按鈕。任何想法如何實現這一目標? – user3158058

回答

0

確切的故事是,我有一個GUI,我想更改了某些設置 在消息監聽器,當我點擊一個按鈕。

您需要通過一些singleton/db/etc將該設置傳遞給消息處理程序。

在情況下,如果消息監聽器需要寫入到一個控制檯重新發送郵件到相同的隊列/話題延遲屬性設置爲這裏https://activemq.apache.org/delay-and-schedule-message-delivery.html

+0

感謝您的回覆。不過,我並不十分熟悉你的建議。請問有沒有可能在這裏發佈一個簡單的例子?非常感謝! – user3158058

+0

嗯..你的意思是如何發送消息或如何設置屬性的消息?或者如何傳遞消息監聽器的設置?要回答這些問題,至少需要了解應用程序的體系結構(運行在哪裏)以及您正在使用的庫。即使如此,回答這些問題將是一個單獨的問題,因此:) – Vitaly

相關問題