jdk1.6集成activemq的2种方式

文章目录

          • 一、maven方式
            • 1. 依赖
            • 2. 发送端
            • 3. 接收端
            • 4. 工具类
          • 二、引入jar方式
            • 2.1.下载jar
            • 2.2. 按需导入
          • 三、添加账号密码

一、maven方式
1. 依赖
        <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.5.0</version></dependency>
2. 发送端

简洁版本

package mq;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Sender {public static void main(String[] args) throws Exception {// 1.创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.0.119:61616");// 2.创建连接Connection connection = connectionFactory.createConnection();// 3.启动连接connection.start();// 4.获取session(会话对象) 参数1:是否启动事务 参数2:消息确认方式Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);// 5.创建队列对象Queue queue = session.createQueue("test-queue");// 6.创建消息生产者对象MessageProducer producer = session.createProducer(queue);// 7.创建消息对象(文本消息)TextMessage textMessage = session.createTextMessage("发送点点对消息模拟第一轮测试!");// 8.发送消息producer.send(textMessage);// 9.关闭资源producer.close();session.close();connection.close();}
}

测试版本

 package com.gblfy.activemq.qq;import javax.jms.*;import org.apache.activemq.ActiveMQConnectionFactory;public class Sender {public static String ADDRESS = "192.168.0.119:61616";public static String QUEUE = "test-queue";public static String SENDMSG = "发送点点对消息模拟第一轮测试!";public static void main(String[] args) throws Exception {//连接工厂ConnectionFactory connectionFactory;//连接Connection connection = null;//会话 接受或者发送消息的线程Session session = null;//消息的目的地Queue queue;//消息生产者MessageProducer messageProducer = null;TextMessage textMessage;try {// 1.创建连接工厂connectionFactory = new ActiveMQConnectionFactory("tcp://" + ADDRESS);// 2.创建连接connection = connectionFactory.createConnection();// 3.启动连接connection.start();// 4.获取session(会话对象) 参数1:是否启动事务 参数2:消息确认方式session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);// 5.创建队列对象queue = session.createQueue(QUEUE);// 6.创建消息生产者对象messageProducer = session.createProducer(queue);// 7.创建消息对象(文本消息)textMessage = session.createTextMessage(SENDMSG);// 8.发送消息messageProducer.send(textMessage);} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {try {// 9.关闭资源messageProducer.close();session.close();connection.close();} catch (JMSException e) {e.printStackTrace();}}}}
}
3. 接收端

简洁版本

 package com.gblfy.activemq.qq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class Consumer {public static void main(String[] args) throws Exception {// 1.创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.0.119:61616");// 2.创建连接Connection connection = connectionFactory.createConnection();// 3.启动连接connection.start();// 4.获取session(会话对象) 参数1:是否启动事务 参数2:消息确认方式Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);// 5.创建队列对象Queue queue = session.createQueue("test-queue");// 6.创建消息消费者对象MessageConsumer consumer = session.createConsumer(queue);// 7.设置监听consumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("提取的消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});// 8.等待键盘输入System.in.read();// 9.关闭资源consumer.close();session.close();connection.close();}
}

测试版本

package com.gblfy.activemq.qq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;
import java.io.IOException;public class Consumer {public static String ADDRESS = "192.168.0.119:61616";public static String QUEUE = "test-queue";public static void main(String[] args) throws Exception {//连接工厂ConnectionFactory connectionFactory;//连接Connection connection = null;//会话 接受或者发送消息的线程Session session = null;//消息的目的地Queue queue;//消息生产者MessageConsumer consumer = null;// 1.创建连接工厂try {connectionFactory = new ActiveMQConnectionFactory("tcp://" + ADDRESS);// 2.创建连接connection = connectionFactory.createConnection();// 3.启动连接connection.start();// 4.获取session(会话对象) 参数1:是否启动事务 参数2:消息确认方式session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);// 5.创建队列对象queue = session.createQueue(QUEUE);// 6.创建消息消费者对象consumer = session.createConsumer(queue);// 7.设置监听consumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("提取的消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});// 8.等待键盘输入System.in.read();} catch (JMSException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 9.关闭资源consumer.close();session.close();connection.close();}}
}
4. 工具类
package com.gblfy.activemq.qq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class MQUtil {//连接工厂ConnectionFactory connectionFactory;//连接Connection connection = null;//会话 接受或者发送消息的线程Session session = null;//消息的目的地Queue queue;public Queue createConnectionFactory(String address, String queueName) {try {// 1.创建连接工厂connectionFactory = new ActiveMQConnectionFactory("tcp://" + address);// 2.创建连接connection = connectionFactory.createConnection();// 3.启动连接connection.start();// 4.获取session(会话对象) 参数1:是否启动事务 参数2:消息确认方式session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);// 5.创建队列对象queue = session.createQueue(queueName);} catch (JMSException e) {e.printStackTrace();}return queue;}public void sendMsg(String address, String queueName, String message) {MessageProducer messageProducer = null;TextMessage textMessage;try {// 6.创建消息生产者对象queue = createConnectionFactory(address, queueName);messageProducer = session.createProducer(queue);// 7.创建消息对象(文本消息)textMessage = session.createTextMessage(message);// 8.发送消息messageProducer.send(textMessage);} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {try {// 9.关闭资源messageProducer.close();session.close();connection.close();} catch (JMSException e) {e.printStackTrace();}}}}public void recMsg(String address, String queueName) {//消息生产者MessageConsumer consumer = null;try {// 6.创建消息消费者对象queue = createConnectionFactory(address, queueName);consumer = session.createConsumer(queue);// 7.设置监听consumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("提取的消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});// 8.等待键盘输入System.in.read();} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {try {// 9.关闭资源consumer.close();session.close();connection.close();} catch (JMSException e) {e.printStackTrace();}}}}public static void main(String[] args) {String ADDRESS = "192.168.0.119:61616";String QUEUE = "test-queue";String SENDMSG = "发送点点对消息模拟第一轮测试!";MQUtil mqUtil = new MQUtil();mqUtil.sendMsg(ADDRESS, QUEUE, SENDMSG);mqUtil.recMsg(ADDRESS, QUEUE);}
}
二、引入jar方式

在这里插入图片描述

2.1.下载jar

建议用maven坐标先把需要的jar下载到本地仓库,再把本地仓库中的jar复制到工程的lib文件夹下面

 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.5.0</version></dependency>

如果出现SLF4J:Failed to load class org.slf4j.impl.StaticLoggerBinder
请跳转https://gblfy.blog.csdn.net/article/details/107018564

2.2. 按需导入

在这里插入图片描述

三、添加账号密码

源码分析:

 public ActiveMQConnectionFactory(String userName, String password, String brokerURL) {setUserName(userName);setPassword(password);setBrokerURL(brokerURL);}

从源码看出在创建连接工厂的时候,在添加账号面的参数即可,注意参数顺序。

例如:

   //连接用户名private static final String USERNAME = "admin";//连接密码private static final String PASSWORD = "admin";//连接地址private static final String BROKEURL = "10.5.6.19:61616";connectionFactory = new ActiveMQConnectionFactory(USERNAME,"tcp://" + BROKEURL,PASSWORD);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes Client-go Informer 源码分析

几乎所有的Controller manager 和CRD Controller 都会使用Client-go 的Informer 函数&#xff0c;这样通过Watch 或者Get List 可以获取对应的Object&#xff0c;下面我们从源码分析角度来看一下Client go Informer 的机制。 kubeClient, err : kubernetes.NewForConfig(cfg) …

html边框大一点,CSS3 框大小(box-sizing)

CSS3 框大小(box-sizing)使用CSS3框大小调整功能&#xff0c;您可以指定元素的有效宽度。使用框大小(box-sizing)重新定义框宽度默认情况下&#xff0c;元素的盒子可见/呈现在网页上的实际宽度或高度依赖于它width或height&#xff0c;padding和border属性值。例如&#xff0c;…

Kube Controller Manager 源码分析

Kube Controller Manager 源码分析 Controller Manager 在k8s 集群中扮演着中心管理的角色&#xff0c;它负责Deployment, StatefulSet, ReplicaSet 等资源的创建与管理&#xff0c;可以说是k8s的核心模块&#xff0c;下面我们以概略的形式走读一下k8s Controller Manager 代码…

plsql 快捷键设置

文章目录1. 创建shortcuts.txt2. 添加自定义内容3. plsql添加配置文件1. 创建shortcuts.txt 路径&#xff1a; 进入PLSQL 的PlugIns目录下面 D:\software\PLSQL Developer\PlugIns\shortcuts.txt2. 添加自定义内容 iINSERT uUPDATE sSELECT fFROM wWHERE oORDER BY dDELETE …

数据中心“容灾”和“备份”的区别

戳蓝字“CSDN云计算”关注我们哦&#xff01;数据中心运行突发故障(如&#xff1a;天灾不可避免的灾难)是无法预测的&#xff0c;计算机里的数据就像扫雷游戏一样&#xff0c;十面埋伏充满雷区&#xff0c;随时都有可能Game Over&#xff0c;容灾备份就是数据安全的最后防线&am…

PAI通过流式机器学习算法解决实时热点新闻挖掘案例

打开新闻客户端&#xff0c;往往会收到热点新闻推送相关的内容。新闻客户端作为一个承载新闻的平台&#xff0c;实时会产生大量的 新闻&#xff0c;如何快速挖掘出哪些新产生的新闻会成为成为热点新闻&#xff0c;决定着整个平台的新闻推荐质量。 如何从平台中海量的新闻素材中…

时间工具类

package com.gblfy.util;import java.util.Calendar; import java.util.GregorianCalendar;/***时间工具类*/ public class TimeUtil {public TimeUtil() {}/*** 得到当前系统日期 author: YT* return 当前日期的格式字符串,日期格式为"yyyy-MM-dd"*/public static S…

2017计算机等级考试试题,2017年计算机二级考试练习题及答案

2017年计算机二级考试练习题及答案计算机二级考试是用于考查应试人员计算机应用知识与技能的全国性计算机水平考试&#xff0c;下面是小编整理的二级考试练习题&#xff0c;欢迎大家练习&#xff01;(1)在以下数据库系统(由数据库应用系统、操作系统、数据库管理系统、硬件四部…

如何使用阿里云ARMS轻松重现用户浏览器问题

客户投诉不断&#xff0c;本地却无法重现&#xff1f; 页面加载较慢是用户经常会反馈的问题&#xff0c;也是前端非常关注的问题之一。但定位、排查解决这类问题就通常会花费非常多的时间&#xff0c;主要原因如下&#xff1a; 页面是在用户端的浏览器上加载执行&#xff0c;…

云+X案例展 | 民生类:智领云数据中台为“健康武汉”增砖添瓦

本案例由智领云投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。与前一个十年相比&#…

root - 计算机术语,root什么意思

root什么意思root指的是你有权限可以再系统上对所有档案有 "读" "写" "执行"的权力root这名词常出现再Linux & unix上&#xff0c;Android是架构再Liinux上面所有才会有root这名词而root相当于windows 上的administration&#xff0c;一个管…

阿里毕玄:程序员如何提升自己的硬实力

从业余程序员到职业程序员 程序员刚入行时&#xff0c;我觉得最重要的是把自己培养成职业的程序员。 我的程序员起步比同龄人都晚了很多&#xff0c;更不用说现在的年轻人了。我大学读的是生物专业&#xff0c;在上大学前基本算是完全没接触过计算机。军训的时候因为很无聊&a…

一枚戒指,一场仪式,这件事阿里巴巴坚持了15年

为入职满五年的员工举行盛大仪式&#xff0c;为他们每个人戴上私人订制的戒指&#xff0c;是阿里巴巴坚持了15年“五年陈”的传统。1月22日&#xff0c;阿里集团为最新一季的“五年陈”们举行了授戒仪式。 2018五年陈小档案 2018年&#xff0c;有1867位同学新晋加入五年陈的队…

云+X案例展 | 金融类:荣之联助力君康人寿构建新一代数据中心

本案例由荣之联投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。近年来&#xff0c;互联…

计算机专业实践试题,计算机专业实践综合试题答案..doc

2011年青岛市高职对口第二次模拟考试计算机类专业实践综合试题答案及评分标准一、单项选择题(本大题共50个小题&#xff0c;每小题2分&#xff0c;共100分)12345678910CADCCBBDCC11121314151617181920DBDDBBCDDC21222324252627282930BACBCCBCDA31323334353637383940BACBBCDBDA4…

java 实现jpg、png、tif、gif 任意图像格式转换

根据企业真实需求背景&#xff0c;java实现jpg、png、tif、gif 任意图像格式转换 方法名说明imageConvertCommon任意图像转换通用类imageConvertToGIF图像任意格式转gifimageConvertToTif图像任意格式转tifimageConvertToJPG图像任意格式转jpgimageConvertToPNG图像任意格式转…

MaxCompute studio与权限那些事儿

背景知识 MaxCompute拥有一套强大的安全体系&#xff0c;来保护项目空间里的数据安全。用户在使用MaxCompute时&#xff0c;应理解权限的一些基本概念&#xff1a; 权限可分解为三要素&#xff0c;即主体&#xff08;用户账号或角色&#xff09;&#xff0c;客体&#xff08;…

集群、分布式、微服务概念和区别

概念: 集群是个物理形态&#xff0c;分布式是个工作方式。 1.分布式&#xff1a;一个业务分拆多个子业务&#xff0c;部署在不同的服务器上 2.集群&#xff1a;同一个业务&#xff0c;部署在多个服务器上 分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中…

机器学习数据集哪里找:最佳数据集来源盘点

很难找到一个特定的数据集来解决对应的机器学习问题&#xff0c;这是非常痛苦的。下面的网址列表不仅包含用于实验的大型数据集&#xff0c;还包含描述、使用示例等&#xff0c;在某些情况下还包含用于解决与该数据集相关的机器学习问题的算法代码。 1 -Kaggle数据集 网址&am…

计算机常用工具软件教案,常用工具软件教案.doc

文档介绍&#xff1a;课题:网络遨游——网络软件教学目的熟练掌握下载软件的使用方法。熟练掌握邮件处理软件的使用方法。熟练掌握FTP工具软件的使用方法。熟练掌握搜索引擎的使用方法。熟练掌握网络加速软件的使用方法。教学重点、难点熟练掌握迅雷、Foxmail、百度搜索引擎等网…