• RabbitMQ/JAVA 客户端连接测试


    这里是一个简单的helloworld测试。

    这里在eclipse平台中实现 

    细节不再赘述。重点是导入rabbitmq-java-client的jar包 下载地址:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.5/rabbitmq-java-client-bin-3.1.5.zip

    将里面的jar包全部导入工程中。如下:

    接下来先看生产者的代码:

    package rabbitmq;
    import com.rabbitmq.client.ConnectionFactory;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.Channel;
    public class Send {
         private final static String QUEUE_NAME = "hello";
          public static void main(String[] args) throws java.io.IOException {  
                /** 
                 * 创建连接连接到MabbitMQ 
                 */  
                ConnectionFactory factory = new ConnectionFactory();  
                // 设置MabbitMQ所在主机ip或者主机名  
                factory.setHost("123.206.216.31");  
                factory.setPort(5672);
                factory.setUsername("admin");
                factory.setPassword("admin");
                // 创建一个连接  
                Connection connection = factory.newConnection();  
                // 创建一个频道  
                Channel channel = connection.createChannel();  
                // 指定一个队列  
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);  
                // 发送的消息  
                String message = "hello world!";  
                // 往队列中发出一条消息  
                channel.basicPublish("", QUEUE_NAME, null, message.getBytes());  
                System.out.println(" [x] Sent '" + message + "'");  
                // 关闭频道和连接  
                channel.close();  
                connection.close();  
            }  
    
    }

     消费者的代码:

    package rabbitmq;
    import com.rabbitmq.client.ConnectionFactory;
    import com.rabbitmq.client.Connection;
    
    import java.io.IOException;
    
    import com.rabbitmq.client.AMQP;
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Consumer;
    import com.rabbitmq.client.DefaultConsumer;
    import com.rabbitmq.client.Envelope;
    import com.rabbitmq.client.QueueingConsumer;
    public class Recv {
        private final static String QUEUE_NAME = "hello";
        public static void main(String[] args) throws java.io.IOException, java.lang.InterruptedException  {
            
            // TODO Auto-generated method stub
             ConnectionFactory factory = new ConnectionFactory();  
                factory.setHost("123.206.216.31");  
                factory.setPort(5672);
                factory.setUsername("admin");
                factory.setPassword("admin");
                // 打开连接和创建频道,与发送端一样  
                Connection connection = factory.newConnection();  
                Channel channel = connection.createChannel();  
          
                // 声明队列,主要为了防止消息接收者先运行此程序,队列还不存在时创建队列。  
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);  
                // 创建队列消费者  
    
                System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
                // 指定消费队列  
                // 指定消费队列 
                QueueingConsumer consumer = new QueueingConsumer(channel);  
                channel.basicConsume(QUEUE_NAME, true, consumer);  
                while(true){  
                    QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
                    String message = new String(delivery.getBody());  
                    System.out.println(" [x] Received '" + message + "'");  
                }  
    
        }
    
    }

    不是一次性通过的。端口号搞错了。应该是5672 写成了15672。

    为什么写成15672是因为我在web登录时用的是这个端口号。后来经过百度得到

    默认安装的Rabbit MQ 监听端口是5672  下面是官网查到的:

    当然也会有其他类型的错误,用户权限在rabbitmq安装的时候没有配置好。注意一下

    最后贴一下运行结果:

  • 相关阅读:
    Axis,axis2,Xfire以及cxf对比 (转)
    客户端调用服务器端三种方式
    webservice发送数据,取数据的方式
    强制关闭myeclipse出现的问题
    取当前系统的上月时间
    oracle 报Ora-01008错误:oracle 并非所有变量都已绑定的原因.TO_number();动态执行select..into..语句时
    ResultSetMetaData rsmd = rs.getMetaData()是什么意思?
    概率质量函数:怀孕周期的PMF
    Python 正则表达式
    TF-IDF
  • 原文地址:https://www.cnblogs.com/tinmh/p/6042167.html
Copyright © 2020-2023  润新知