当前位置:首页 > Java技术文章 > java怎么连接并访问activemq

java如何连接并访问activemq

  • 发布时间:
  • 作者:码农之家原创
  • 点击:91

这篇文章主要知识点是关于java、访问activemq、activemq、基于Java ActiveMQ的实例讲解 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下java相关资源

21天学通Java

21天学通Java(第7版) 是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习;同时全面涵盖了Java 8这一新标准以及与Android开发相关的Ja

查看详情

java怎么连接并访问activemq

1、下载安装ActiveMQ

下载可以去官网下载:http://activemq.apache.org/download.html。我们这里使用windows测试,所以下载windows版本即可。

2、启动ActiveMQ 

下载zip文件后直接解压,解压后我们比较关注的是bin和conf目录。

  • bin存放的是脚本文件
  • conf存放的是基本配置文件
  • data存放的是日志文件
  • docs存放的是说明文档
  • examples存放的是简单的实例
  • lib存放的是activemq所需jar包
  • webapps用于存放项目的目录

启动ActiveMQ非常的简单。进入bin目录

双击“activemq.bat”就启动运行了。因为ActiveMQ是用Java编写的,所以必须确保电脑已经安装了JDK。

双击运行之后就可以在浏览器里面输入:http://localhost:8161/admin。就能够进入ActiveMQ的后台页面了。帐号密码默认都是:admin

Java程序连接端口:61616

修改61616端口,可以修改文件conf>activemq.xml

修改登录名和密码,可以修改文件conf>jetty-realm.properties

3、创建一个ActiveMQ工程

这里还是先放一张图:

java怎么连接并访问activemq

根据这张图我们实现了一个队列Queue的代码如下

1.pom.xml

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

2.消费者代码

package cn.duanjt;

import java.io.IOException;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession;

/**
 * 消费者
 * @author 段江涛
 * @date 2018-11-23
 */
public class Consumer {
 // 全部使用缺省值
 private static String USERNAME = ActiveMQConnection.DEFAULT_USER;
 private static String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
 private static String BROKER = ActiveMQConnection.DEFAULT_BROKER_URL;

 public static void main(String[] args) throws IOException {
  ConnectionFactory factory;
  Connection connection = null;
  Session session;
  Queue queue;
  Message message;
  MessageConsumer consumer;

  try {
   factory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER);
   connection = factory.createConnection();
   connection.start();
   
   session = connection.createSession(false, ActiveMQSession.AUTO_ACKNOWLEDGE);
   queue = session.createQueue("zd-duanjt");
   consumer = session.createConsumer(queue);
   //注释部分为同步方式
   /*while (true) {
    message = consumer.receive();
    TextMessage tmsg = (TextMessage) message;
    System.out.println("接收到数据:" + tmsg.getText());
   }*/
   //下面是异步方式,通过注册监听
   consumer.setMessageListener(new MessageListener() {
    
    @Override
    public void onMessage(Message message) {
     TextMessage tmsg = (TextMessage) message; 
     try {
      System.out.println("接收到数据:" + tmsg.getText());
     } catch (JMSException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   });
   
  } catch (Exception e) {
   e.printStackTrace();
  } finally{
   // 之前在这里把连接关闭了,导致一直无法消费数据,注意,这里千万不要关闭连接
  }
 }
}

3.生产者代码

package cn.duanjt;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession;

/**
 * 生产者产生数据
 * @author 段江涛
 * @date 2018-11-23
 */
public class Productor {
 // 全部使用缺省值
 private static String USERNAME = ActiveMQConnection.DEFAULT_USER;
 private static String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
 private static String BROKER = ActiveMQConnection.DEFAULT_BROKER_URL;

 public static void main(String[] args) throws JMSException {
  ConnectionFactory factory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER);
  Connection connection = factory.createConnection();
  connection.start();
  Session session = connection.createSession(false, ActiveMQSession.AUTO_ACKNOWLEDGE);

  Queue queue = session.createQueue("zd-duanjt");
  MessageProducer productor = session.createProducer(queue);
  for (int i = 0; i < 3; i++) {
   String msg = "Hello world:" + i;
   Message message = session.createTextMessage(msg);
   productor.send(message);
   System.out.println("发送数据:" + msg);
  }
  
  connection.close();
  
 }
}

重点说明:

1.Queue queue = session.createQueue("zd-duanjt");表示创建一个队列,我们也可以创建一个Topic,Topic topic=session.createTopic("zd-topic");

2.注意这里面的JMS相关的类都在包javax.jms.*下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

基于Java ActiveMQ的实例讲解

所需引入Jar包:

jms-1.1.jar

activemq-all-5.15.0.jar

生产者

package com.mousewheel.demo;

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.ObjectMessage;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;

public class MQConsumerDemo {
 public static void main(String[] args) throws JMSException {

  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin", "admin", "tcp://192.168.31.33:61616");
  Connection connection = null;
  try {
   connection = connectionFactory.createConnection();
   connection.start();
   Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination = session.createQueue("test-queue");
   MessageConsumer consumer = session.createConsumer(destination);
   consumer.setMessageListener(new MessageListener() {
    @Override
    public void onMessage(Message message) {
     try {
      MqBean bean = (MqBean) ((ObjectMessage) message).getObject();
      System.out.println(bean);
      if (null != message) {
       System.out.println("收到消息" + bean.getName());
      }
     } catch (Exception e) {
      // TODO: handle exception
     }

    }
   });
   System.out.println("Begin listen");
  } catch (Exception e) {
   // TODO: handle exception
  }

 }
}

消费者

package com.mousewheel.demo;

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.ObjectMessage;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;

public class MQConsumerDemo {
 public static void main(String[] args) throws JMSException {

  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin", "admin", "tcp://192.168.31.33:61616");
  Connection connection = null;
  try {
   connection = connectionFactory.createConnection();
   connection.start();
   Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination = session.createQueue("test-queue");
   MessageConsumer consumer = session.createConsumer(destination);
   consumer.setMessageListener(new MessageListener() {
    @Override
    public void onMessage(Message message) {
     try {
      MqBean bean = (MqBean) ((ObjectMessage) message).getObject();
      System.out.println(bean);
      if (null != message) {
       System.out.println("收到消息" + bean.getName());
      }
     } catch (Exception e) {
      // TODO: handle exception
     }

    }
   });
   System.out.println("Begin listen");
  } catch (Exception e) {
   // TODO: handle exception
  }

 }
}

以上这篇基于Java ActiveMQ的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Java的全部知识点内容总结,大家还可以在下方相关文章里找到Java实现快速排序原理分析、 Java文件和base64流相互转换、 java图形界面编程的代码详、 等java文章进一步学习,感谢大家的阅读和支持。

上一篇:Springboot源码AbstractAdvisorAutoProxyCreator解析

下一篇:java图形界面编程的代码详解

展开 +

收起 -

java连接访问activemq 相关内容
明解Java

这是一本更适合入门的Java编程书,图文并茂,示例丰富,通过284幅图表和258段代码,由浅入深地解说了从Java的基础知识到面向对象编程的内容

查看详情
菜鸟成长之路:Java程序员职场全攻略

《菜鸟成长之路:Java程序员职场全攻略》 内容简介:以包罗万象的IT这个大江湖为背景,将Java职场中从入门前的学校菜鸟到成长为技术大牛的过程展现给读者,内容饱满但又不失趣味性。在《

查看详情
Java虚拟机基础教程

概述JVM及其特性,介绍了Java、Scala、Clojure、Kotlin和Groovy这5种基于JVM的语言,分别探讨它们的特性和用例,适合所有Java开发人员以及对JVM感兴趣的读者

查看详情
码出高效:Java开发手册

引爆技术圈,全球瞩目的中国计算机民族图书,中国人自己原创的Java编程规范,希望未来社会发展的每一行代码都规范、合理、高效,马云、行癫、鲁肃亲笔推荐!

查看详情
Java从入门到项目实践 查看详情
HTML5+CSS3+JavaScript从入门到精通

本书以基础知识、示例、实战案例相结合的方式详尽讲述了HTML,CSS,JavaScript及目前最新的前端技术

查看详情
Java并发编程从入门到精通

《Java并发编程从入门到精通》 作者结合自已10多年Java并发编程经验,详细介绍了Java并发编程的基础概念、工作原理、编程技巧和注意事项,对Java高性能高并发编程有极大的参考价值。 本书内

查看详情
java连接访问activemq 学习笔记
网友NO.350140

Java基于jdbc连接mysql数据库操作示例

本文实例讲述了Java基于jdbc连接mysql数据库操作。分享给大家供大家参考,具体如下: import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class MySQLDemo { private Connection conn = null; private Statement stmt = null; private ResultSet rs = null; private String driverclass = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/mydb"; private String user = "root"; private String password = "111111"; public MySQLDemo() { try { Class.forName(driverclass).newInstance(); // 加载驱动程序 } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block System.out.println("class not found"); } try { conn = DriverManager.getConnection(url, user, password); /……

网友NO.463181

Java数据库连接池之c3p0简介_动力节点Java学院整理

c3p0是什么 c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的。 它的特性: 编码的简单易用 连接的复用 连接的管理 说到c3p0,不得不说一下jdbc本身,c3p0愿意就是对数据库连接的管理,那么原有的概念还是得清晰:DriverManager、Connection、StateMent、ResultMent。 jdbc:java database connective这套API,不用多说,是一套用于连接各式dbms或连接桥接器的api,两个层级:上层供应用方调用api,下层,定义了各个dbms的spi的api(具体文档见:这里)。 主要要提的是:datasource、DriverManager,想到哪儿写到哪儿,datasource是更高级一点的api,原因在于相对对应用来说更透明。 Connection:同dbms的逻辑链接,类似于session管理概念, SQL statements are executed and results are returned within the context of a connection. jdbc的概念就到这里,平时用得比较多。 c3P0的配置 c3p0的bean配置如下:……

网友NO.326862

Java使用JDBC连接postgresql数据库示例

本文实例讲述了Java使用JDBC连接postgresql数据库。分享给大家供大家参考,具体如下: package tool;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class PsqlConnectionTool { private String url = "jdbc:postgresql://xxx.xxx.xxx.xxx:5432/testdb"; private String username = "postgres"; private String password = "postgres"; private Connection connection = null; public Connection getConn() { try { Class.forName("org.postgresql.Driver").newInstance(); connection = DriverManager.getConnection(url, username, password); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (SQLException e) { // TODO Auto-generated catch block e.printStackTr……

网友NO.778101

java连接mysql数据库及测试是否连接成功的方法

本文实例讲述了java连接mysql数据库及测试是否连接成功的方法。分享给大家供大家参考,具体如下: package com.test.tool;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCUtlTool { public static Connection getConnection(){ String driver="com.mysql.jdbc.Driver"; //获取mysql数据库的驱动类 String url="jdbc:mysql://localhost:3306/test"; //连接数据库(kucun是数据库名) String name="root";//连接mysql的用户名 String pwd="123456";//连接mysql的密码 try{ Class.forName(driver); Connection conn=DriverManager.getConnection(url,name,pwd);//获取连接对象 return conn; }catch(ClassNotFoundException e){ e.printStackTrace(); return null; }catch(SQLException e){ e.printStackTrace(); return null; } } public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){ try{ if(rs!=null){ rs……

网友NO.267036

Java使用Jdbc连接Oracle执行简单查询操作示例

本文实例讲述了Java使用Jdbc连接Oracle执行简单查询操作。分享给大家供大家参考,具体如下: Java Jdbc 连接 Oracle 执行简单查询示例: package com.test.dbtest;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/**Jdbc 连接 Oracle 数据库 简单示例 *@author wanggq *@version 创建时间:2014年3月31日 上午11:00:06 *类说明 */public class TestO_procedure01 { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:Oracle:thin:@localhost:1521:orcl"; Statement stmt = null; ResultSet res = null; Connection conn = null; CallableStatement proc = null; String sql = " select T.REC_NO, T.AIRLINE,T.DEPARTURE,T.ARRIVAL from CDP_MAIN_ORDER t where t.departure=upper('pek')"; try { Class.forName(driver); conn = DriverManager.getConnection(url, "abc123", "abc123"); stmt = con……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757