`
周英能
  • 浏览: 187992 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jms-queue入门之hello world

 
阅读更多

首先编写消息驱动bean

 

@MessageDriven(activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myQueue") })
public class MessageConsumer implements MessageListener {

	public void onMessage(Message message) {
		if (message instanceof TextMessage) {
			TextMessage tm = (TextMessage) message;
			try {
				System.out.println(tm.getText());
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}
	}

}

 这个bean会监听jndi地址queue/myQueue上的消息

发送jms消息步骤:

1、首先从jndi上下文获取一个连接工厂,有TopicConnectionFactory/QueueConnectionFactory两种

2、从连接工厂获取一个连接,同理有QueueConnction/TopicConnection两种

3、通过连接建立一个会话,同理有QueueSession/TopicSession两种

4、通过session创建消息发送者,同理有QueueSender/TopicPublisher两种

5、发送jms消息,有TextMessage,MapMessage,ObjectMessage等

 

public void jmsQueue(){
		QueueConnectionFactory factory = null ;
		QueueConnection conn = null;
		QueueSender sender = null;
		QueueSession session = null ;
		Queue queue = null;
		try {
			factory = (QueueConnectionFactory)this.context.lookup("ConnectionFactory");
			conn = factory.createQueueConnection();
			session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
			queue = (Queue)this.context.lookup("queue/myQueue");
			sender = session.createSender(queue);
			TextMessage message = session.createTextMessage();
			message.setText("hello world");
			sender.send(message);
			session.close();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(session!=null){
				try {
					session.close();
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		}
	}
@MessageDriven(activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer1 implements MessageListener{

	public void onMessage(Message message) {
		if(message instanceof TextMessage){
			TextMessage tm = (TextMessage)message;
			try {
				System.out.println(this.getClass().getName()+":"+tm.getText());
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}
	}

}
@MessageDriven(activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer implements MessageListener{

	public void onMessage(Message message) {
		if(message instanceof TextMessage){
			TextMessage tm = (TextMessage)message;
			try {
				System.out.println(this.getClass().getName()+":"+tm.getText());
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}
	}

}
public void jmsTopic(){
		TopicConnectionFactory factory = null ;
		TopicConnection  conn = null ;
		TopicSession session = null ;
		TopicPublisher sender = null ;
		TextMessage message = null ;
		Topic topic = null ;
		try {
			factory = (TopicConnectionFactory)this.context.lookup("ConnectionFactory");
			conn = factory.createTopicConnection();
			session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
			topic = (Topic)this.context.lookup("topic/myTopic");
			sender = session.createPublisher(topic);
			message = session.createTextMessage();
			message.setText("hello world");
			sender.send(message);
			session.close();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				session.close();
			} catch (Exception e2) {
			}
		}
	}
<?xml version="1.0" encoding="UTF-8" ?>  
 
<server>  
        <mbean code="org.jboss.mq.server.jmx.Queue"  
                        name="jboss.org.destination:server=Queue,name=accpQueue" >  
                <attribute name="JNDIName" >queue/myQueue </attribute>  
                <depends optional-attribute-name = "DestinationManager" >  
                        jboss.mq:service=DestinationManager  
                </depends>  
        </mbean>  
	
	 <mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=myTopic">  
		 <attribute name="JNDIName" >topic/myTopic </attribute> 
        <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>  
    </mbean>  
          
</server>  
分享到:
评论

相关推荐

    spring-jms使用queue发送消息简单例子

    sender.sendMessage("Hello, World!"); // 保持应用运行,以便接收消息 context.registerShutdownHook(); } } ``` 这个例子展示了如何在Spring应用中使用Spring JMS和ActiveMQ创建一个简单的消息发送和接收...

    JMS--J2EE培训材料

    Message message = queueSession.createTextMessage("Hello, World!"); queueSender.send(message); ``` 以上代码展示了如何通过JNDI查找ConnectionFactory和Destination,创建Connection、Session以及发送一条文本...

    PHP 调用 JMS -Stomp

    ], 'Hello, World!'); // 消息内容 $client-&gt;send($message); ``` 4. **订阅和接收消息** 通过`Client`对象的`subscribe`方法订阅主题或队列,然后使用`read`方法接收消息。示例: ```php $client-&gt;subscribe...

    ESB应用Hello_World_File_Action

    &lt;mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.helloworld.destination:service=Queue,name=helloworldfile"&gt; &lt;depends optional-attribute-name="ServerPeer"&gt;jboss.messaging:...

    ActiveMQ简单的HelloWorld实例

    在本文中,我们将深入探讨如何使用ActiveMQ创建一个基本的"HelloWorld"实例,以便于初学者理解消息队列的工作原理。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了多种消息协议,如OpenWire、AMQP、...

    ESB应用Hello_World_Action

    在本篇文章中,我们将关注于使用JBoss ESB创建一个名为“Hello World Action”的示例应用。JBoss ESB是Red Hat JBoss中间件的一部分,它提供了一个开放源码的ESB平台,用于构建和管理SOA(面向服务架构)应用程序。 ...

    Jboss-ESB学习笔记.doc

    name="jboss.esb.helloworld.destination:service=Queue,name=helloworldfile" xmbean-dd="xmdesc/Queue-xmbean.xml"&gt; &lt;depends optional-attribute-name="ServerPeer"&gt;jboss.messaging:service=ServerPeer ...

    Spring-JMS把企业消息处理变容易.doc

    TextMessage message = session.createTextMessage("Hello, World!"); return message; } }); ``` 这段代码创建了一个`JmsTemplate102`实例,然后使用`convertAndSend`方法发送一个文本消息到指定的队列。`...

    switchyard-example:Hello World,来自在 JBoss Fuse 中使用 Switchyard 开发的网络服务

    &lt;jms:queue&gt;example.GreetingService&lt;/jms:queue&gt; &lt;/jms:binding.jms&gt; ``` 在这个配置中,服务通过 JMS 绑定组件暴露,可以接收和响应消息队列中的请求。 **部署与测试** 完成服务的编写和配置后,可以在 ...

    ConfluentJMSPOC:使用融合的jms客户端jar和activemq请求回复示例

    融合JMS POC 如何运行: 确保Confluent企业和ActiveMQ都已安装并在默认端口上运行。 ActiveMQ下载: : ,合流下载: : 确保在ActiveMQ和Confluent中都创建了队列(合流中的主题) reply-queue , request-queue和...

    ESB应用Spring_Hello_World

    【ESB应用Spring_Hello_World】是针对JBoss ESB的一个示例教程,它展示了如何在ESB中集成Spring框架来实现一个简单的服务调用。这个应用的主要目的是演示基于Spring的action调用机制,利用ESB进行消息传递和处理。 ...

    SpringJMS源码

    jmsTemplate.convertAndSend("Hello, World!"); ``` 同时,为了监听消息,我们可以使用`MessageListenerAdapter`,它允许我们将Java方法映射到消息处理上: ```java MessageListenerAdapter listenerAdapter = new...

    JMS IBM MQ 订阅模式

    TextMessage message = session.createTextMessage("Hello, World!"); producer.send(message); // 接收消息 Message received = consumer.receive(); if (received instanceof TextMessage) { System.out.println...

    ActiveMQ 安装 手册 说明

    Destination destination = new ActiveMQQueue("jms_test_queue"); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage(); message.setText(...

    JBOSS使用指南

    3.1 HelloWorld实例 3.2 程序代码 3.3 配置文件jboss-service.xml 3.4 将实例部署到JBOSS 3.5 MBean的效果 s四.EJB3.0使用说明 1. Enterprice JavaBeans(EJB)的概念 1.1 会话 Bean: 1.2 实体Bean: 1.3 消息驱动...

    ActiveMQ in Action

    import javax.jms.Queue; import javax.jms.Topic; Queue queue = session.createQueue("TestQueue"); Topic topic = session.createTopic("TestTopic"); ``` ##### 消息生产者(Message Producer) 消息生产者是...

    activemq-cpp-library-3.9.5-src.zip

    std::auto_ptr&lt;cms::TextMessage&gt; message(session-&gt;createTextMessage("Hello, World!")); producer-&gt;send(message.release()); std::auto_ptr&lt;cms::Message&gt; received = consumer-&gt;receive(); ``` 5. **构建...

    《Java高手真经:Java Web高级开发技术》读书笔记模板.pptx

    + EJB快速上手——HelloWorld入门实例 * 第4课:会话Bean(Session Bean)——发布JNDI服务 + 无状态会话Bean(Stateless Session Bean) + 有状态会话Bean(Stateful Session Bean) + 会话Bean扩展开发 * 第5...

Global site tag (gtag.js) - Google Analytics