2016-08-10 107 views
1

我有ejb-jar.xml中包含<message-selector> destinationInstance IN(a', 'b','c')</message-selector>.如何使用消息選擇過濾消息在JMS

我們怎樣才能實現獨立的Java程序的消息選擇。

JMSMessageListener已在隊列中註冊,並且每當隊列中有消息時,將調用onMessage方法的偵聽器。

我試試這個。?它的工作原理...

公共無效messageSelector(){

List<String> url=StCotants.getUrls(); 

    for(String obj:url){ 

     ConnectionFactory factory = new ActiveMQConnectionFactory(obj); 

     System.out.println(factory); 

     try{ 
      Connection connection = factory.createConnection(); 

      connection.start(); 

      Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); 

      Queue queue = session.createQueue("queue"); 

      MessageConsumer consumer = session.createConsumer(queue,"destinationInstance IN('a', 'b','c')"); 

      XyzMDBClient xyzClientlistener=new XyzMDBClient(); 

      consumer.setMessageListener(xyzClientlistener); 

     } 
     catch(Exception e){ 

      e.printStackTrace(); 

     } 

    } 

回答

0

當你創建一個消費者,你可以提選擇作爲第二個參數 session.createConsumer(隊列,「destinationInstance IN('一','b','c')「) session.setMessageListener(...)