`
mzh_2008beijing
  • 浏览: 230370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMS 之 ActiveMQ入门示例

 
阅读更多
企业中各项目中相互协作的时候可能用得到消息通知机制。比如有东西更新了,可以通知做索引。

在 Java 里有 JMS 的多个实现。其中 apache 下的 ActiveMQ 就是不错的选择。ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。这里示例下使用 ActiveMQ

用 ActiveMQ 最好还是了解下 JMS


JMS 定义了两种方式:Quere(点对点);Topic(发布/订阅)。

ConnectionFactory 是连接工厂,负责创建Connection。

Connection 负责创建 Session。

Session 创建 MessageProducer(用来发消息) 和 MessageConsumer(用来接收消息)。

Destination 是消息的目的地。

详细的可以网上找些 JMS 规范(有中文版)。

下载 apache-activemq-5.3.0(http://activemq.apache.org/download.html ),解压,然后双击 bin/activemq.bat。运行后,可以在 http://localhost:8161/admin 观察。也有 demo, http://localhost:8161/demo 。把 activemq-all-5.3.0.jar 加入 classpath。

JMS发送端代码:
package com.mzh.common.jms;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {
	public static void main(String[] args) throws Exception {      
	    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();      
	    Connection connection = connectionFactory.createConnection();      
	    connection.start();      
	     
	    Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);      
	    Destination destination = session.createQueue("queue-hello");      
	     
	    MessageProducer producer = session.createProducer(destination);      
	       
	    TextMessage message = session.createTextMessage();    
	       
	    message.setText("Hello,mazh!");      
	      
	    //通过消息生产者发出消息      
	    producer.send(message);   
	    
	    session.commit();      
	    session.close();      
	    connection.close();      
	}
}



JMS接收端代码:
package com.mzh.common.jms;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver implements MessageListener {
	
	private boolean stop=false;
	
	public void execute() throws Exception{
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();      
	     
	    Connection connection = connectionFactory.createConnection();      
	    connection.start();      
	     
	    final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);      
	    Destination destination = session.createQueue("queue-hello");      
	     
	    MessageConsumer consumer = session.createConsumer(destination);     
	    
	    consumer.setMessageListener(this);
	    session.commit();
	    while(!stop){
	    	Thread.sleep(5000);
	    }
	    
	    consumer.close();
	    session.close();      
	    connection.close();    
	}
	public void onMessage(Message message) {
		 TextMessage msg = (TextMessage) message;      
		 try {
			System.out.println("收到消息:" +msg.getText());
		} catch (JMSException e) {
			e.printStackTrace();
		}      
	}  
	public static void main(String[] args) throws Exception {      
	      new Receiver().execute();
	}
}


(声明:本文转自http://blog.csdn.net/caihaijiang/article/details/5903296,特别感谢原作者的无私分享。)
  • 大小: 39.3 KB
分享到:
评论

相关推荐

    SpringActiveMQ入门示例

    Spring整合JMS(activeMQ)的示例,开发环境为eclipse+maven

    jms-activemq-example:使用Apache ActiveMQ的Belajar JMS

    提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss Messaging等。 客户端,它是充当消息的发送者或接收者的应用程序。 生产者/发布者,它是充当...

    simple-jms-example:Java Messaging Service示例

    简单的Java消息服务示例我发现JMS入门有点复杂。 甚至O'Reilly的“ Java Messaging Service”之类的好书也没有提供完整的项目示例。 在这里,我提供了第2章中的聊天示例,其中包含完整的构建系统和说明。建造生成...

    getting_started_with_activemq:模子

    ActiveMQ 入门该项目包括许多示例配置,显示了各种 ActiveMQ 高可用性场景。 其中包括:主从、经纪人网络和主从经纪人网络。 该项目还包括一个简单的 JMS 队列(点对点)消息生产者和消息消费者。 笔记: 所有说明都...

    spring-boot-camel-amq:快速入门,展示如何将Spring Boot,Apache Camel和Apache ActiveMQ与Kubernetes或OpenShift一起使用

    Spring-Boot,Camel和EnMasse快速入门本快速入门演示了如何使用Kubernetes或OpenShift将Spring-Boot应用程序连接到EnMasse(MaaS)并在两条骆驼路线之间使用JMS消息传递。 在此示例中,我们将使用两个容器,一个容器...

    springboot-amq-s2i

    Spring Boot,Camel和ActiveMQ快速入门 此快速入门展示了如何将Spring-Boot应用程序连接到A-MQ xPaaS消息代理,以及如何使用OpenShift在两条骆驼路线之间使用JMS消息传递。 建筑 这个例子可以用 mvn clean install ...

    fis-spring-boot-camel-amq

    Spring Boot,Camel和ActiveMQ快速入门本快速入门介绍了如何使用OpenShift将Spring-Boot应用程序连接到A-MQ xPaaS消息代理,以及如何在两条骆驼路线之间使用JMS消息传递。建造这个例子可以用mvn clean install在...

    单点登录源码

    ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | ...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

Global site tag (gtag.js) - Google Analytics