JBoss中的消息驱动bean
来源:互联网 发布:小熊猫 知乎 编辑:程序博客网 时间:2024/06/05 23:57
首先我们来解释一下什么叫做JMS,如下:
接下来我们来介绍一下相关概念:
代码的编写正式开始,首先新建一个工程,具体步骤不多说啦,记得要把JBoss中的JAR包关联到工程中。然后配置一个目标地址,如下:
来看看具体的代码:
<mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=itcastQueue"><!-- name 为目标地址的名称 --> <attribute name="JNDIName">queue/itcastQueue</attribute><!-- JNDI名称的格式是确定的 --> <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends> </mbean>然后,我们要把jndi.properties属性文件拷贝到此工程中,开始编写消息生成器,代码如下:
package com.zlb.app;import javax.jms.Destination;import javax.jms.MessageProducer;import javax.jms.QueueConnection;import javax.jms.QueueConnectionFactory;import javax.jms.QueueSession;import javax.naming.InitialContext;public class QueueSender {/** * @param args */public static void main(String[] args) {try {//得到JNDI初始化上下文InitialContext initialContext = new InitialContext();//根据上下文查找一个连接工厂QueueConnectionFactory.//该连接工厂是由JMS提供的,不需我们自己创建,每个厂商//都为它绑定了一个全局的JNDI,我们通过全局的JNDI便可获取QueueConnectionFactory factory = (QueueConnectionFactory)initialContext.lookup("ConnectionFactory");//从连接工厂得到一个连接QueueConnection conn = factory.createQueueConnection();//通过连接来创建一个会话QueueSession session = (QueueSession) conn.createSession(false, QueueSession.AUTO_ACKNOWLEDGE);//建立不需要事务的并且能自动确认消息已接受的会话//根据目标地址配置文件中的JNDI名称查找目标地址Destination destination = (Destination) initialContext.lookup("queue/itcastQueue");//根据会话以及目标地址来建立消息生产者(QueueSender和TopicPublisher都扩展自MessageProducer接口)MessageProducer producer = session.createProducer(destination);//消息生产者发送消息producer.send(session.createTextMessage("您好,Queue"));session.close();conn.close();System.out.println("Queue发送成功...");} catch (Exception e) {e.printStackTrace();}}}关于QueueConnectionFactory中的全局JNDI的值我们可以根据下面的图片去查找:
再编写一下消息使用者,方法如下:
代码为:
package com.zlb.msg;import javax.ejb.ActivationConfigProperty;import javax.ejb.MessageDriven;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;@MessageDriven(activationConfig={@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),@ActivationConfigProperty(propertyName="destination",propertyValue="queue/itcastQueue"),@ActivationConfigProperty(propertyName="acknowledgeMode",propertyValue="Auto-acknowledge")})public class MessageDrivenBean implements MessageListener{@Overridepublic void onMessage(Message message) {TextMessage msg = (TextMessage)message;try {System.out.println(msg.getText());} catch (JMSException e) {e.printStackTrace();}}}最后,再通过ANT编译一下即可,关于ANT的书写可以去参考:http://blog.csdn.net/zlb824/article/details/7067113,得到的结果为:
上面是PTP的消息传递模型,还有一种叫做Pub/Sub的消息传递模型在这里就不做详细介绍,方法很简单,只要把所有的Queue改为Topic即可!
- JBoss中的消息驱动bean
- Eclipse+JBoss+EJB3消息驱动Bean
- 如何让jboss下的消息驱动bean消费远程JMS消息
- eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean
- eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean
- 消息驱动bean
- 消息驱动Bean
- 开发消息驱动Bean
- 设计消息驱动 Bean
- 消息驱动Bean(MDB)
- 消息驱动Bean
- EJB消息驱动bean
- 消息驱动Bean (Message Driven Bean)
- EJB3.0消息驱动Bean
- 消息驱动bean的应用
- MDB 消息驱动bean开发
- MDB 消息驱动bean开发
- EJB3.0消息驱动Bean
- 语言编程需要注意的64位和32机器的区别
- 类加载器的应用
- C#反射、动态加载类
- oulook无法打开exe附件的解决
- 输入和输出(echo,read,cat,管道,tee,重定向等)
- JBoss中的消息驱动bean
- SQL Server FOR XML PATH 语句的应用
- jQuery事件的旅程原文 http://book.51cto.com/art/200807/79150.htm
- 串口数据获取-时间间隔的问题
- QTP深层掌握
- List<T>在搜索和排序时采用不同方法的性能比较
- javascript学习笔录1(【问题】JavaScript的相关问题)
- delphi 总结
- Android Dialog的几个方法说明