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消息服务(JMS)的一个实现,是Apache软件基金会开发的一款开源消息中间件。它在分布式系统中扮演着重要的角色,允许不同组件或服务之间进行异步通信,提高了系统的可扩展性和解耦性。在Java编程...
通过以上步骤,你可以成功地搭建一个基于ZooKeeper和LevelDB的ActiveMQ集群,并对其进行测试。这种集群配置提供了高可用性和数据持久性,确保即使在部分节点故障的情况下,消息队列也能正常运行。同时,LevelDB的...
本教程主要围绕`mqttjs`,一个JavaScript实现的MQTT客户端库,以及如何使用它来测试ActiveMQ服务器。`mqttjs`是一个轻量级且易于使用的库,适合在Web应用、Node.js环境中进行 MQTT 相关的开发工作。 首先,安装`...
spring-boot-activemq-consumer 源码
JMeter作为一个强大的负载和性能测试工具,被广泛用于测试各种应用程序,包括消息中间件如ActiveMQ。 1. 系统概况 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了高效、可靠的消息...
标题中的“ActiveMQ与Zookeeper集群测试代码”指的是一个实验或示例项目,旨在演示如何结合这两个组件来构建高可用的消息传递环境。Zookeeper在这里的角色可能是用来管理ActiveMQ集群的状态,实现节点间的选举和故障...
- **消费者(Consumer)**:消费者是接收和处理消息的组件,它可以订阅一个或多个消息主题,并在消息到达时进行处理。 - **队列(Queue)**:队列是一种点对点的消息模型,每个消息仅被一个消费者接收并处理。遵循先进...
生产者代码通常会创建一个 `ConnectionFactory`,通过这个工厂创建 `Connection`,然后创建 `Session`。在 `Session` 上创建一个 `Destination`(Queue 或 Topic),接着创建 `MessageProducer`,最后通过 `...
这个压缩包`apache-activemq-5.0.0-src.zip`包含了ActiveMQ 5.0.0版本的源代码,对于开发者来说,这是一个深入理解其工作原理、定制功能或进行二次开发的重要资源。 源代码分析是理解软件设计思想和技术实现的关键...
在Spring配置文件中,我们需要定义一个`ConnectionFactory`,它是与消息服务器建立连接的工厂类。一般我们会使用`PooledConnectionFactory`来提高性能,因为它可以复用连接,避免频繁创建和关闭。配置如下: ```...
这个"activeMQ 例子 真实环境下测试过"的压缩包文件很可能包含了一系列用于演示和验证ActiveMQ功能的实际代码或配置示例。 ActiveMQ的核心功能包括: 1. **消息队列**:ActiveMQ支持发布/订阅和点对点两种模式的...
总的来说,这个代码示例为我们展示了如何在分布式系统中利用Netty的高效网络通信能力和ActiveMQ的消息传递功能,构建出一个能够处理大量并发连接并能优雅地处理异步任务的系统。这样的组合在微服务架构、实时数据流...
在这个项目中,我们看到的是一个自己实现的 ActiveMQ 客户端,它特别关注多线程的实现,这在处理大量并发消息时非常关键。 1. **ActiveMQ 的基本概念**: - **消息队列**:ActiveMQ 中的核心概念,用于存储待处理...
WebSocket提供了一种全双工的、低延迟的通信协议,使得客户端和服务器之间可以双向实时传输数据,而ActiveMQ则是一个开源的消息中间件,常用于解耦应用程序和实现异步通信。 WebSocket API 被设计为HTTP/1.1协议的...
标题"memcached和activeMQ的JAVA示例代码"表明这是一个关于使用Java编程语言实现的,针对memcached缓存系统和activeMQ消息中间件的示例项目。这通常是为了帮助开发者理解如何在实际应用中整合这两种技术。 描述中的...
ActiveMQ 5.7版本是其历史上的一个重要版本,提供了稳定且高效的消息传递服务。在这个版本中,我们可以深入理解ActiveMQ的设计原理、实现机制以及如何通过源代码进行定制和优化。 首先,让我们探讨ActiveMQ的核心...
ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP和MQTT等。在Java开发环境中,ActiveMQ作为中间件广泛应用于分布式系统中的消息传递,提供可靠...
本案例代码包含了一个基本的ActiveMQ生产者和消费者的应用示例,帮助开发者理解如何使用ActiveMQ进行消息传递。 1. **JMS(Java Message Service)简介** JMS是Java平台上的一个标准API,它定义了生产、发送、接收...
以下是一个简单的ActiveMQ代码用例,展示如何创建连接、发送和接收消息: ```java import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageProducer; import javax.jms.Queue;...
Apache ActiveMQ是一个开源的消息中间件,它遵循Java Message Service (JMS) 规范,用于在分布式系统中传输消息。ActiveMQ提供了高可靠性和高性能的特性,使得它成为企业级应用广泛采用的消息传递平台。本实例将帮助...