2016-08-10 69 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(...)