[原创]Message Driven Bean 学习

发送端: 
@Stateless 
@Local 
public class QueueSend implementsIQueueSend 

  
   @Resource(mappedName ="jms/ConnectionFactory") 
    privateConnectionFactory connectionFactory; 

   @Resource(mappedName = "jms/RequestQueue") 
    privateQueue requestQueue; 


    public voidsendNotificationForInline(ReportInstance ri){         
       Connection connection = null; 
       try { 
           connection =connectionFactory.createConnection(); 
           Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); 
           Destination dest = (Destination)requestQueue; 
           MessageProducer messageProducer =session.createProducer(dest); 
           MapMessage message =session.createMapMessage(); 
           message.setLong("reportInstId",ri.getId()); 
           messageProducer.send(message); 
       } catch (Exception ex) { 
            
       } finally { 
           if (connection != null) { 
               try { 
                   connection.close(); 
               } catch (Throwable t) { 
               } 
           } 
       } 
   } 




接收端: 
@MessageDriven(mappedName ="jms/RequestQueue") 
public class NotificationProcesser implements MessageListener{ 

    public void onMessage(Message message) { 
     if(message instanceof MapMessage) 
     { 
        //处理message 
     } 
   } 



Queue:点对点的消息队列,1个消息产生1个对应 1:1 
Topic:采取发布/订阅机制的消息主题,1个消息产生多个对应  1:N
 
 

 

posted @ 2014-05-28 08:42  lihui1625  阅读(68)  评论(0编辑  收藏  举报