2013-04-18 17 views
0

我有一個MDB,在部署在glassfish上時可以使用ActiveMQ建議消息。在tomEE中使用ActiveMQ建議消息mdb

但是當我在tomEE上部署時,此MDB不消耗任何建議消息。有什麼我需要打開嗎?

@MessageDriven(mappedName = "ActiveMQ.Advisory.Consumer.Queue", activationConfig = { 
     @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"), 
     @ActivationConfigProperty(propertyName = "destination", propertyValue = "ActiveMQ.Advisory.Consumer.Queue.User.*") }) 
public class AdvisoryMdb implements MessageListener { 
    private final Logger logger = LoggerFactory.getLogger(getClass().getName()); 

    @Override 
    public void onMessage(Message message) { 
     logger.info("onMessage() {}", message); 
    } 
} 

(在TomEE我設法成功地生產和消費這些隊列上,我想諮詢的消息)

編輯:我測試,以對這些諮詢的話題之一消耗一個獨立的客戶端,並得到了消息如預期。所以建議消息被成功發送,只是我的mdb不能正確地接收它們。

回答

0

一次偶然的機會我試圖從@MessageDriven註釋去掉

mappedName = "ActiveMQ.Advisory.Consumer.Queue" 

,突然它的工作原理上都TomEE和GlassFish。不知道爲什麼我首先補充說,猜測它對玻璃魚也不需要。

1

你試圖消費什麼諮詢信息?

考慮看看文檔here ...我看到ActiveMQ.Advisory.Consumer.Queue被列爲含義消費者開始隊列 &停止消息。你的目標是ActiveMQ.Advisory.Consumer.Queue.User.*,那麼你有一個叫User的隊列嗎?這是單個隊列還是User下面有多個隊列?

同時閱讀文檔,在諮詢隊列名稱的年份似乎有一些變化。你可以檢查平臺上的ActiveMQ版本,並確保你比較蘋果和蘋果嗎?另外,在我列出的文檔頁面上,我想知道是否某些建議被禁用。它沒有列出那個可以被禁用的特定隊列,但你可以嘗試明確地啓用所有的建議,看看是否有幫助。

+0

感謝您的關注,我設法自己解決這個問題 –

+0

正在監聽ActiveMQ.Advisory.Consumer.Queue.User。*意味着它將在匹配模式「User。*」的隊列中選擇消費者事件。 –