ejb3学习笔记5

开发消息驱动bean

1定义消息驱动bean 服务

定义queue 和topic 消息驱动bean。

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <server>  
  3.     <mbean code="org.jboss.mq.server.jmx.Queue"  
  4.                  name="jboss.mq.destination:service=Queue,name=itcastQueue">  
  5.      <attribute name="JNDIName">queue/itcastQueue</attribute>  
  6.      <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>  
  7.   </mbean>  
  8.   <mbean code="org.jboss.mq.server.jmx.Topic"  
  9.                  name="jboss.mq.destination:service=Topic,name=itcastTopic">  
  10.      <attribute name="JNDIName">topic/itcastTopic</attribute>  
  11.      <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>  
  12.   </mbean>  
  13. </server>  

  

 

 

2 向bean 发送消息

 

  1. InitialContext ctx = new InitialContext();  
  2. QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("QueueConnectionFactory");  
  3. QueueConnection conn = factory.createQueueConnection();  
  4. QueueSession session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);//事物 消息确认模式    
  5. Destination destination = (Destination)ctx.lookup("queue/itcastQueue");  
  6. MessageProducer producer = session.createProducer(destination);  
  7. producer.send(session.createTextMessage("你好"));  
  8. session.close();  
  9. conn.close();  

 

 

topic消息 只需要将Queue改成Topic 即可

 

3 从bean中接受消息

  

 

  1. @MessageDriven(activationConfig={  
  2.     @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),  
  3.     @ActivationConfigProperty(propertyName="destination", propertyValue="queue/itcastQueue")          
  4. })  
  5. public class MessageDrivenBean implements MessageListener{  
  6.   
  7.     public void onMessage(Message message) {  
  8.         try {  
  9.             TextMessage msg = (TextMessage)message;  
  10.             System.out.println(msg.getText());  
  11.         } catch (JMSException e) {  
  12.             e.printStackTrace();  
  13.         }  
  14.     }  
  15. }  

 

 

 

4 消息:

消息,由消息头消息正文组成

JMS的异步性:JMS生产者发送消息后,无需阻塞进程,不需要管谁是消费者。

JMS消息传递模型:JMS Provider提供两种消息传递模型,及发布-订阅模型(Pub/Sub)点对点模型(PtP)

StreamMessage

MapMessage

TextMessage

ObjectMessage

BytesMessage

你可能感兴趣的:(学习笔记)