`
jetway
  • 浏览: 483938 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ActiveMq例子代码

    博客分类:
  • java
 
阅读更多

import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQPrefetchPolicy;
import org.apache.camel.component.jms.JmsMessage;
import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;

//发送TextMessage
public class SendMessage {
    
    private static final String url = "tcp://localhost:61616";;
    private static final String QUEUE_NAME = "choice.queue";
    protected String expectedBody = "<hello>world!</hello>";
    
    public void sendMessage() throws JMSException{

        Connection connection = null;
        
        try{            
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
            connection = connectionFactory.createConnection();
            
            connection.start();
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);          
            Destination destination = session.createQueue(QUEUE_NAME);
            MessageProducer producer = session.createProducer(destination);
            TextMessage message = session.createTextMessage(expectedBody);
            message.setStringProperty("headname", "remoteB");
                producer.send(message);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            connection.close();
        }
    }


***************************************************************************************
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;
//发送BytesMessage
public class SendMessage {
    
    private String url = "tcp://localhost:61616";
        
    public void sendMessage() throws JMSException{
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();
        connection.start();
        Session  session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue("test.queue");
        MessageProducer producer = session.createProducer(destination);
        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
        BytesMessage message = session.createBytesMessage();
        byte[] content = getFileByte("d://test.jar");
        message.writeBytes(content);
        try{
            producer.send(message);
            System.out.println("successful send message");
        }catch(Exception e){
            e.printStackTrace();
            e.getMessage();
        }finally{
            session.close();
            connection.close();
        }                
    }
    
    private byte[] getFileByte(String filename){
        byte[] buffer = null;
        FileInputStream fin = null;
        try {
            File file = new File(filename);
            fin = new FileInputStream(file); 
            buffer = new byte[fin.available()];
            fin.read(buffer);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fin.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return buffer;
    }
发送完消息后可以访问 
http://localhost:8161/admin/queues.jsp 
看到相应的queue中是否有消息 

 

 

 

 

 适用收取TextMessage消息 
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;


public class ReceiveMessage {
    
    private static final String url = "tcp://172.16.168.167:61616";
    private static final String QUEUE_NAME = "szf.queue";

    
    public void receiveMessage(){
        Connection connection = null;
        try{
            try{
                ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
                connection = connectionFactory.createConnection();
            }catch(Exception e){
//                ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//                connection = connectionFactory.createConnection();
            }            
            connection.start();
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Destination destination = session.createQueue(QUEUE_NAME);
            MessageConsumer consumer = session.createConsumer(destination);
            consumeMessagesAndClose(connection,session,consumer);
        }catch(Exception e){
            
        }
    }
    
    protected void consumeMessagesAndClose(Connection connection,
            Session session, MessageConsumer consumer) throws JMSException {
        for (int i = 0; i < 1;) {
            Message message = consumer.receive(1000);
            if (message != null) {
                i++;
                onMessage(message);
            }
        }
        System.out.println("Closing connection");
        consumer.close();
        session.close();
        connection.close();
    }
    
    public void onMessage(Message message){
        try{
            if (message instanceof TextMessage) {
                TextMessage txtMsg = (TextMessage)message;
                String msg = txtMsg.getText();
                System.out.println("Received: " + msg);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
        
    public static void main(String args[]){
        ReceiveMessage rm = new ReceiveMessage();
        rm.receiveMessage();
    }
}
分享到:
评论

相关推荐

    springMVC+activeMQ例子

    整合Spring MVC和ActiveMQ的例子会涵盖以上所述的各个方面,通过这些文件,我们可以进一步分析和理解这个示例的具体实现细节。这个例子展示了如何在一个Web应用中有效地利用消息队列来处理异步任务,提升系统的性能...

    ActiveMQ例子

    这个“ActiveMQ例子”可能是为了帮助用户理解如何在实际应用中使用和配置ActiveMQ。 在ActiveMQ中,有几个关键概念需要了解: 1. **消息**:消息是数据传输的基本单元,它包含了要传递的信息。ActiveMQ支持多种...

    activeMQ 例子 真实环境下测试过

    这个"activeMQ 例子 真实环境下测试过"的压缩包文件很可能包含了一系列用于演示和验证ActiveMQ功能的实际代码或配置示例。 ActiveMQ的核心功能包括: 1. **消息队列**:ActiveMQ支持发布/订阅和点对点两种模式的...

    apache-activemq-5.0.0-src.zip_ActiveMQ 源代码_activemq_activemq.src

    这个压缩包`apache-activemq-5.0.0-src.zip`包含了ActiveMQ 5.0.0版本的源代码,对于开发者来说,这是一个深入理解其工作原理、定制功能或进行二次开发的重要资源。 源代码分析是理解软件设计思想和技术实现的关键...

    ActiveMQ实现例子

    在上述代码中,我们创建了一个名为"MyQueue"的消息队列,生产者发送消息到这个队列,消费者则从队列中接收消息。你可以根据需要创建多个生产者和消费者,以实现更复杂的消息传递场景。 ActiveMQ还支持多种高级特性...

    一个activeMQ的简单例子

    这个简单的ActiveMQ例子可能是为了演示如何设置和使用基本的生产者和消费者,以及如何通过消息队列实现异步通信。在实际应用中,我们还可以利用ActiveMQ的高级特性,如持久化、优先级、消息筛选等,以满足更复杂的...

    activemq例子

    标题中的“ActiveMQ例子”指的是Apache ActiveMQ,一个开源的消息中间件,它是Java Message Service (JMS) 的实现,用于处理应用程序之间的异步通信。在IT行业中,消息队列如ActiveMQ是分布式系统中实现解耦、可靠...

    ActiveMQ学习 完整例子

    在"ActiveMQ学习"的完整例子中,你可以通过编写Java代码来创建生产者和消费者,实践发送和接收消息,了解消息的生命周期和状态。同时,通过配置不同的参数,体验ActiveMQ的灵活性和强大功能。例如,你可以创建一个...

    Apache ActiveMQ 入门最简单例子

    这通常涉及编写代码来创建生产者和消费者。例如,在Java环境中,我们可以使用JMS(Java Message Service)API与ActiveMQ交互: 1. **消息生产者**:生产者创建一个连接到ActiveMQ服务器的ConnectionFactory,然后...

    activeMQ JMS WEB 例子

    在这个"ActiveMQ JMS WEB 例子"中,我们将探讨如何在Web环境中使用ActiveMQ进行消息通信。 首先,了解ActiveMQ的基本概念是必要的。ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、XMPP和MQTT,使其能够广泛应用...

    java ActiveMQ的例子

    在这个例子中,我们有`apache-activemq-5.9.0`的压缩包,这包含了ActiveMQ的一个早期版本。这个包通常会包含服务器的可执行文件、配置文件、示例代码以及相关的文档,非常适合初学者来学习和理解ActiveMQ的工作原理...

    ActiveMQ的简单例子

    本教程将通过一个简单的例子介绍ActiveMQ的两个核心模式:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。我们将使用IntelliJ IDEA作为集成开发环境来实现这些示例。 首先,我们需要...

    ActiveMQ 简单例子源码 包含操作说明

    `ActiveMQ-5.5` 可能是 ActiveMQ 的某个版本的安装包或库文件,可能包含了运行示例代码所需的环境。 **开始使用 ActiveMQ** 1. **安装 ActiveMQ**:下载并解压 `ActiveMQ-5.5`,根据文档启动 ActiveMQ 服务器。 2. ...

    activemq rcp测试例子 不包含依赖库

    标题中的“ActiveMQ RCP测试例子 不包含依赖库”指的是一个使用ActiveMQ远程过程调用(RPC)功能的示例项目,但这个压缩包里并未包含必要的依赖库。ActiveMQ是Apache软件基金会的一个开源项目,它是一个强大的消息...

    自己写的ActiveMQ的Demo例子

    **ActiveMQ 概述** ActiveMQ 是一个开源的消息中间件,它是 Java Message Service(JMS)规范的一个实现,用于在分布式系统中传输消息。ActiveMQ 支持多种协议,如 OpenWire、STOMP、AMQP 和 MQTT,允许不同平台的...

    ACTIVEMQ C#下的例子

    标题"ACTIVEMQ C#下的例子"暗示我们将探讨如何在C#应用程序中集成ActiveMQ,以便实现文件的发送。 首先,我们需要了解ActiveMQ的基本概念。消息队列(Message Queue)是ActiveMQ的核心,它提供了一种解耦生产者和...

    ActiveMQ C++ Windows客户端 3.8.3例子代码(含头文件和编译出来的dll和lib)

    activemq的最新的CMS客户端代码是3.8.3,由于在windows下编译比较麻烦,遍寻网络不获,所以自己仔细研究了一下,终于编译成功,分享给大家。附件中的例子工程在vs2010下编译通过。如果需要移植到自己的工程里,仅...

Global site tag (gtag.js) - Google Analytics