首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ejb3学习札记5

2012-11-04 
ejb3学习笔记5开发消息驱动bean1定义消息驱动bean 服务定义queue 和topic 消息驱动bean。??xml?version1

ejb3学习笔记5

开发消息驱动bean

1定义消息驱动bean 服务

定义queue 和topic 消息驱动bean。

?

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

??

?

?

2 向bean 发送消息

?

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

?

?

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

?

3 从bean中接受消息

??

?

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

?

?

?

4 消息:

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

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

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

StreamMessage

MapMessage

TextMessage

ObjectMessage

BytesMessage

热点排行