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

共享一个自己编写测试过的Activemq BlobMessage Consumer 代码。

阅读更多
package cn.net.intervision.fileconfig;

// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   MyQueueReceiver.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.QueueConnection;
import javax.jms.QueueSession;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.BlobMessage;
  
public class MyQueueReceiver
{
 
	  static String localdir;
	public static void main(String args[])
		throws Exception
	{
		File ivconfig = new File("IV.config");
		if(ivconfig.exists()==false){
			System.out.println("未找到配置文件IV.config,请将此文件放在Reciver.exe的同目录下。");
			usage();
			Thread.sleep(10000);
		}
		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(ivconfig)));
		String brokeURL = br.readLine();
		String UserName = br.readLine();
		String Password = br.readLine();
		String Queue = br.readLine();
		String LocalDir = br.readLine();
		
		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(brokeURL);
 
		 QueueConnection con = (QueueConnection)factory.createConnection(UserName,Password);
		 con.setClientID("\""+Queue+"\"的接收端");
		   QueueSession session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
	 
		javax.jms.Queue queue = session.createQueue(Queue);
		MessageConsumer consumer = session.createConsumer(queue);
		 localdir = LocalDir;
		consumer .setMessageListener(new MessageListener(){
			
			public void onMessage(Message msg) {
				BlobMessage blobmsg = (BlobMessage)msg;
				String FileName = null;
				String JMSTimestamp = null;
				String JMSExpiration = null ;
				try {
					FileName = blobmsg.getStringProperty("JMSCorrelationID");
					JMSExpiration = blobmsg.getStringProperty("JMSExpiration"); 
					JMSTimestamp = blobmsg.getStringProperty("JMSTimestamp"); 
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				String FullFileName =  JMSTimestamp+"_"+JMSExpiration+"_"+FileName;
				File file = new File(localdir+"/"+FullFileName );
				try {
					file.createNewFile();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} 
				try {
					 InputStream is = blobmsg.getInputStream();
 
					 
					 FileOutputStream fos = new FileOutputStream(file); 
					  
					 int count; 
					 byte[] buff = new byte[16 * 1024]; 
					 while((count = is.read(buff)) != -1) { 
					     fos.write(buff, 0, count); 
					 } 
					 fos.close(); 
					 is.close(); 
 
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			
		});
		 
	}

	private static void usage() throws IOException {
		// TODO Auto-generated method stub
		System.out.println("如不存在,新建IV.config文件于当前目录,");
		StringBuffer sb = new StringBuffer("tcp://localhost:61616\nuser\npassword\n队列1\nd:/temp\n\n\n\n\n\n\n\n\n\n");
		sb.append("注意:第一行表示连接地址,第二行为用户名,第三行密码,第四行广告队列名,第五行本地目录。首行不能为空。每行首字母不能为空。");
		 System.out.println(sb);
	 }
	} 

 

分享到:
评论

相关推荐

    测试activeMQ的java程序

    ActiveMQ,作为Java消息服务(JMS)的一个实现,是Apache软件基金会开发的一款开源消息中间件。它在分布式系统中扮演着重要的角色,允许不同组件或服务之间进行异步通信,提高了系统的可扩展性和解耦性。在Java编程...

    基于zookeeper+levelDB的ActiveMQ集群测试代码

    通过以上步骤,你可以成功地搭建一个基于ZooKeeper和LevelDB的ActiveMQ集群,并对其进行测试。这种集群配置提供了高可用性和数据持久性,确保即使在部分节点故障的情况下,消息队列也能正常运行。同时,LevelDB的...

    mqttjs(activemq测试工具)

    本教程主要围绕`mqttjs`,一个JavaScript实现的MQTT客户端库,以及如何使用它来测试ActiveMQ服务器。`mqttjs`是一个轻量级且易于使用的库,适合在Web应用、Node.js环境中进行 MQTT 相关的开发工作。 首先,安装`...

    spring-boot-activemq-consumer源码

    spring-boot-activemq-consumer 源码

    Jmeter测试ActiveMQ性能报告

    JMeter作为一个强大的负载和性能测试工具,被广泛用于测试各种应用程序,包括消息中间件如ActiveMQ。 1. 系统概况 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了高效、可靠的消息...

    ActiveMQ与Zookeeper集群测试代码

    标题中的“ActiveMQ与Zookeeper集群测试代码”指的是一个实验或示例项目,旨在演示如何结合这两个组件来构建高可用的消息传递环境。Zookeeper在这里的角色可能是用来管理ActiveMQ集群的状态,实现节点间的选举和故障...

    ActiveMQ实例,源代码

    - **消费者(Consumer)**:消费者是接收和处理消息的组件,它可以订阅一个或多个消息主题,并在消息到达时进行处理。 - **队列(Queue)**:队列是一种点对点的消息模型,每个消息仅被一个消费者接收并处理。遵循先进...

    activemq 入门示例代码

    生产者代码通常会创建一个 `ConnectionFactory`,通过这个工厂创建 `Connection`,然后创建 `Session`。在 `Session` 上创建一个 `Destination`(Queue 或 Topic),接着创建 `MessageProducer`,最后通过 `...

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

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

    Spring+ActiveMQ整合实例代码工程

    在Spring配置文件中,我们需要定义一个`ConnectionFactory`,它是与消息服务器建立连接的工厂类。一般我们会使用`PooledConnectionFactory`来提高性能,因为它可以复用连接,避免频繁创建和关闭。配置如下: ```...

    activeMQ 例子 真实环境下测试过

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

    Netty与ActiveMQ的程序代码范例

    总的来说,这个代码示例为我们展示了如何在分布式系统中利用Netty的高效网络通信能力和ActiveMQ的消息传递功能,构建出一个能够处理大量并发连接并能优雅地处理异步任务的系统。这样的组合在微服务架构、实时数据流...

    自己实现的 ActiveMQ 多线程客户端 包含生产消息客户端和消费者消息客户端

    在这个项目中,我们看到的是一个自己实现的 ActiveMQ 客户端,它特别关注多线程的实现,这在处理大量并发消息时非常关键。 1. **ActiveMQ 的基本概念**: - **消息队列**:ActiveMQ 中的核心概念,用于存储待处理...

    webchat聊天室(websocket+activemq编写)

    WebSocket提供了一种全双工的、低延迟的通信协议,使得客户端和服务器之间可以双向实时传输数据,而ActiveMQ则是一个开源的消息中间件,常用于解耦应用程序和实现异步通信。 WebSocket API 被设计为HTTP/1.1协议的...

    memcached和activeMQ的JAVA示例代码

    标题"memcached和activeMQ的JAVA示例代码"表明这是一个关于使用Java编程语言实现的,针对memcached缓存系统和activeMQ消息中间件的示例项目。这通常是为了帮助开发者理解如何在实际应用中整合这两种技术。 描述中的...

    activemq 5.7 官方源代码

    ActiveMQ 5.7版本是其历史上的一个重要版本,提供了稳定且高效的消息传递服务。在这个版本中,我们可以深入理解ActiveMQ的设计原理、实现机制以及如何通过源代码进行定制和优化。 首先,让我们探讨ActiveMQ的核心...

    ActiveMQ连接和使用测试工程

    ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP和MQTT等。在Java开发环境中,ActiveMQ作为中间件广泛应用于分布式系统中的消息传递,提供可靠...

    activemq生产者和消费者案例代码.zip

    本案例代码包含了一个基本的ActiveMQ生产者和消费者的应用示例,帮助开发者理解如何使用ActiveMQ进行消息传递。 1. **JMS(Java Message Service)简介** JMS是Java平台上的一个标准API,它定义了生产、发送、接收...

    ActiveMQ代码用例

    以下是一个简单的ActiveMQ代码用例,展示如何创建连接、发送和接收消息: ```java import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageProducer; import javax.jms.Queue;...

    activemq入门实例,有源代码

    Apache ActiveMQ是一个开源的消息中间件,它遵循Java Message Service (JMS) 规范,用于在分布式系统中传输消息。ActiveMQ提供了高可靠性和高性能的特性,使得它成为企业级应用广泛采用的消息传递平台。本实例将帮助...

Global site tag (gtag.js) - Google Analytics