java调用rabbitmq

1 : 需要的jar

下载地址:http://repo1.maven.org/maven2/com/rabbitmq/amqp-client/3.0.4/

maven配置:

<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>3.0.4</version>
</dependency>

注意:夹包的版本不同,有的类找不到,

列如:import com.rabbitmq.client.QueueingConsumer;-----在5.0.0版本中就没有,在3.0.4版本中有,其他版本需要自己测试

2:创建一个java工程,直接引入下面代码测试

=========================测试类开始===========================

package rabbitmq;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.junit.Test;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;  
import com.rabbitmq.client.ConsumerCancelledException;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.ShutdownSignalException;

public class TestMq {
    
    public final static String QUEUE_NAME="rabbitMQ_test";
    
    /**
     * 建立连接,创建消息列队,并且向消息列队中发送一条消息
     */
    @Test
    public void linkSend(){
        
            try {
                //创建连接工厂
                ConnectionFactory factory = new ConnectionFactory();

//设置RabbitMQ相关信息
                factory.setHost("192.168.146.134");
                factory.setUsername("admin");
                factory.setPassword("123");
                factory.setPort(5672);

//创建一个新的连接
                Connection connection = factory.newConnection();
                //创建一个通道
                Channel channel = connection.createChannel();
                // 声明一个队列
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);
                //发送消息到队列中
                String message = "Hello RabbitMQ";
                channel.basicPublish("",QUEUE_NAME, null, message.getBytes("UTF-8"));
                System.out.println("Producer Send +‘" + message + "‘");

//关闭通道和连接
                channel.close();
                connection.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    
    /**
     * 建立连接,创建消息列队,并且接收消息列队中的一条消息
     */
    @Test
    public void testReceive(){
        
            
            try {
                //创建连接工厂
                ConnectionFactory factory = new ConnectionFactory();

//设置RabbitMQ相关信息
                factory.setHost("192.168.146.134");
                factory.setUsername("admin");
                factory.setPassword("123");
                factory.setPort(5672);

//创建一个新的连接
                Connection connection = factory.newConnection();

//创建一个通道
                Channel channel = connection.createChannel();

//声明要连接的队列
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);  
                System.out.println("等待消息产生:");

//创建消费者对象,用于读取消息
                QueueingConsumer consumer = new QueueingConsumer(channel);  
                channel.basicConsume(QUEUE_NAME, true, consumer);  
                
                //获取消息列队中的消息,打印在控制台
                QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
                String message = new String(delivery.getBody());  
                System.out.println("收到消息==============" + message);

//关闭通道和连接
                channel.close();
                connection.close();
            } catch (ShutdownSignalException | ConsumerCancelledException
                    | IOException | InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    }

}

=========================测试类结束===========================

原文地址:https://www.cnblogs.com/xueershewang/p/9120956.html

时间: 2024-11-09 10:49:39

java调用rabbitmq的相关文章

JAVA实现RabbitMQ,附安装过程

RabbitMQ的第一个JAVA实现 RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境 Erlang官网   http://www.erlang.org/ Linux 下Erlang下载选择sourcefile Wget命令下载 Ubuntu下用tar –xzvf *.tar.gz命令解压 依次执行以下命令: ./configure--prefix=/home/hadoop/mydisk/erlang (该过程可能失败,建议sudoapt-get install build

Golang调用Rabbitmq消息队列和封装

前言 介绍Rabbimq Rabbitmq消息队列是干嘛的? 简单的说,消息队列,引申一下就是传递消息用的队列,也可以称为传递消息的通信方法.用争抢订单的快车举个例子,假如,A用户发送了一个用车的消息,那么消息队列要做的就是把A用户用车的这个消息广而告之,发送到一个公用队列当中,司机只管取到消息,而不管是谁发布的,这就是一个简单的消息队列例子,Rabbitmq其实就是消息队列的一种,用的比较多的还可能有Redis,kafka,ActiceMq等等,这个后面的博文里面我会说,这次我们只说Rabbi

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

java 调用 keytool 生成keystore 和 cer 证书

keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries)——只包含公钥 ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写 下面给出一

java调用phantomjs采集ajax加载生成的网页

java调用phantomjs采集ajax加载生成的网页 日前有采集需求,当我把所有的对应页面的链接都拿到手,准备开始根据链接去采集(写爬虫爬取)对应的终端页的时候,发觉用程序获取到的数据根本没有对应的内容,可是我的浏览器看到的内容明明是有的,于是浏览器查看源代码也发觉没有,此时想起该网页应该是ajax加载的.不知道ajax的小朋友可以去学下web开发啦. 采集ajax生成的内容手段不外乎两种.一种是通过http观察加载页面时候的请求,然后我们模仿该请求去得到对应的内容,第二种则是模仿浏览器行为

Java调用Linux命令(cd的处理)

一.Java调用Linux系统的命令非常简单 这是一个非常常用的调用方法示例: 1 public String executeLinuxCmd(String cmd) { 2 System.out.println("got cmd job : " + cmd); 3 Runtime run = Runtime.getRuntime(); 4 try { 5 Process process = run.exec(cmd); 6 InputStream in = process.getIn

JAVA调用Shell脚本

在实际项目中,Java有时候需要调用C写出来的东西,除了JNI以外,我认为一种比较好的方法是JAVA调用Shell.先把C写出来的make成可执行文件,然后再写一个shell脚本执行该可执行文件,最后是JAVA调用该shell脚本. JAVA调用很简单,例子如下: 首先是shell脚本 [plain] view plain copy print? #!/bin/sh echo Begin word cluster /home/felven/word2vec/word2vec -train /ho

ndk学习17: jni之Java调用C&C++

一.Hello World 1. 定义函数原型 native关键字定义的函数即为jni函数 2.生成头文件 切换到src目录执行: (这个过程可以写脚本自动完成,比如自动拷贝到jni目录) javah -jni 包名.类名 在根目录下生成: org_bing_testjni_MainActivity.h 3. 工程中添加jni代码 工程右键->添加native code->输入名字->finish 多了如下文 新建一个Application.mk,配置相关选项(详细查看ndk有关Appl

java调用c++ dll出现中文乱码

最近的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作.在调用中如果路径中包含有中文字符就会出现问题,程序运行就会中止.下面用一个小例子,来说明记录下解决的方法. java中传入一个字符串,调用c++代码将字符串输出 public class CommonUtil { static { System.loadLibrary("nativeTest"); } public native static void Print(String s