`
yu11223344
  • 浏览: 5939 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

测试发送和接受消息

阅读更多
发送消息代码:
package com.yzk.test.message;

import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class SendMessage {
 private static final String url ="tcp://localhost:61616";
 private static final String QUEUE_NAME ="choice.queue";
 protected String expectedBody = "hello world!";
 public void sendMessage() throws JMSException{
  Connection connection =null;
  try{
// ConnectionFactory :连接工厂,JMS 用它创建连接 
   ActiveMQConnectionFactory connectionFactory =new ActiveMQConnectionFactory(url);
//JMS 客户端到JMS Provider 的连接 
   connection = (Connection)connectionFactory.createConnection();
   connection.start();
// Session: 一个发送或接收消息的线程 
   Session session = (Session)connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Destination :消息的目的地;消息发送给谁. 
// 获取session注意参数值QUEUE_NAME是Query的名字 
   Destination destination = session.createQueue(QUEUE_NAME);
// MessageProducer:消息生产者 
   MessageProducer producer = session.createProducer(destination);
 //创建一条文本消息 
   TextMessage message = session.createTextMessage(expectedBody);
   message.setStringProperty("headname", "remoteB");
//通过消息生产者发出消息 
   producer.send(message);    
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args){
  SendMessage sndMsg = new SendMessage();
  try{
   sndMsg.sendMessage();
  }catch(Exception ex){
   System.out.println(ex.toString());
  }
 }
}




消息的接受者:
package com.yzk.test.message;

import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class ReceiveMessage {
	 private static final String url = "tcp://localhost:61616";
	 private static final String QUEUE_NAME = "choice.queue";
	 public void receiveMessage() {
	  Connection connection = null;
	  try {
	   try {
 // ConnectionFactory :连接工厂,JMS 用它创建连接 
	    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
 //JMS 客户端到JMS Provider 的连接 
	    connection = connectionFactory.createConnection();
	   } catch (Exception e) {
	                System.out.println(e.toString());
	   }
	   connection.start();
// Session: 一个发送或接收消息的线程 
	   Session session = connection.createSession(false,
	     Session.AUTO_ACKNOWLEDGE);
// Destination :消息的目的地;消息发送给谁. 
	   Destination destination = session.createQueue(QUEUE_NAME);
// 消费者,消息接收者 
	   MessageConsumer consumer = session.createConsumer(destination);
	   consumeMessagesAndClose(connection, session, consumer);
	  } catch (Exception e) {
	    System.out.println(e.toString());
	  }
	 }

	 protected void consumeMessagesAndClose(Connection connection,Session session, MessageConsumer consumer)
	 throws JMSException {
	  for (int i = 0; i < 1;) {
	   Message message = consumer.receive(1000);
	   if (message != null) {
	    i++;
	    onMessage(message);
	   }
	  }
	  System.out.println("Closing connection");
	  consumer.close();
	  session.close();
	  connection.close();
	 }

	 public void onMessage(Message message) {
	  try {
	   if (message instanceof TextMessage) {
	    TextMessage txtMsg = (TextMessage) message;
	    String msg = txtMsg.getText();
	    System.out.println("Received: " + msg);
	   }
	  } catch (Exception e) {
	   e.printStackTrace();
	  }

	 }

	 public static void main(String args[]) {
	  ReceiveMessage rm = new ReceiveMessage();
	  rm.receiveMessage();
	 }

	}


先开启activemq,运行发送者,再运行接受者,将会开导后台打印出:
hello world!
分享到:
评论

相关推荐

    kafka 发送和接收消息

    消息中间件kafka 进行消息的分发和接收示例 应用中包含分通道发送和多线程接收

    C#消息队列发送及接收

    在C#编程中,我们可以利用Microsoft Message Queuing(MSMQ)库来实现消息队列的发送和接收。本文将深入探讨C#中如何使用MSMQ进行消息队列的操作,并通过示例代码来展示具体实现。 首先,我们需要理解消息队列的...

    串口通讯接收发送及测试程序

    这个"串口通讯接收发送及测试程序"包含了实现这一功能的相关代码和资源。 首先,我们要理解串口通讯的基本原理。串口通讯通常使用TTL电平(0和5V)或RS-232标准,通过数据线(如RXD和TXD)进行数据传输。数据以比特...

    C#微信企业号接收和发送消息

    微信企业号是一种为企业用户提供内部通讯和管理工具的服务,它允许开发者通过API接口进行定制化开发,实现自动化的工作流程和消息通知。本文将主要围绕以下几个核心知识点展开: 1. **微信企业号API**: 微信...

    TCP报文发送接收测试工具

    总之,TCP报文发送接收测试工具是网络开发和调试的利器,它通过模拟客户端和服务器,提供自动化报文发送,帮助我们理解和解决问题,确保TCP通信的高效、稳定和可靠。对于任何涉及TCP协议的项目,这样的工具都是必不...

    SpringBoot+ActiveMq+MQTT实现消息的发送和接收

    5. 编写消息发送接口:为了将消息发送逻辑封装起来,可以创建一个服务类,提供发送消息的方法,这些方法可以根据需要接受不同的参数,比如消息主题和消息内容。 6. 发送消息业务类:在业务层,调用上述接口发送消息...

    消息的发送与接受模拟实现

    在实现消息的发送和接收时,我们需要进行测试,以确保程序的正确性和可靠性。在这个程序中,我们可以使用一些测试用例来检测程序的正确性和可靠性。 源程序 在这个程序中,我们提供了一个完整的源程序,包括消息...

    基于Servlet发送、接收SOAP消息的java源程序

    【标题】基于Servlet发送、接收SOAP消息的Java源程序 在Web服务开发中,SOAP(简单对象访问协议)是一种常见的消息传输协议,用于在不同系统间交换结构化和类型化的信息。Servlet作为Java Web应用程序的核心组件,...

    socket服务和客户端测试XML文件接收和发送

    本示例涉及的主题是“socket服务和客户端测试XML文件接收和发送”,这是一个使用C#语言实现的项目,它允许通过Socket进行XML数据的交换。让我们深入探讨这个主题,了解其背后的原理和实现方法。 首先,Socket是TCP/...

    串口接收和发送测试工具

    在Windows操作系统中,经常使用各种串口接收和发送测试工具来进行设备调试、数据监测或系统集成工作。本文将深入探讨串口通信的基本原理、Windows环境下的串口工具以及如何使用这些工具进行数据收发。 串口通信的...

    C#微信企业号接收和发送消息.rar

    在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行消息的接收和发送。微信企业号是一个为企业提供内部沟通和管理的平台,它允许企业与员工、客户和其他合作伙伴进行互动。C#作为.NET框架的主要编程语言,...

    串口调试工具 串口测试 串口消息发送 接收 RS232 485

    RS232串口有9针或25针D型连接器,其中包含数据发送(TXD)、数据接收(RXD)和其他控制线如请求发送(RTS)和清除发送(CTS)等,这些线缆用于确保数据的正确传输。 RS485则是一种多点、双向通信标准,扩展了RS232...

    weblogic中使用JMS发送和接受消息

    WebLogic Server是一款由Oracle公司提供的企业级应用服务器,它支持Java Message Service (JMS) 规范,允许在分布式环境中可靠地发送和接收消息。JMS是Java平台上的标准接口,用于实现应用程序间的异步通信。本文将...

    EL6021串口自由协议通讯Byte型数据发送和接收测试程序

    在本文中,我们将深入探讨如何使用TwinCAT3,倍福的自动化软件,进行EL6021串口自由协议的Byte型数据发送和接收测试。EL6021是一款常用于工业自动化领域的串行通信模块,其自由协议功能允许用户自定义通信协议,以...

    spring mq集成 web工程发送和接收消息例子

    5. **测试**:在完成上述配置后,启动Web工程,你应该能够在ActiveMQ控制台看到队列`myQueue`,并且能够观察到消息的发送和接收。 这个例子展示了如何在Spring Web工程中集成ActiveMQ,实现消息的发送和接收。通过...

    SMTP测试邮件发送工具

    4. **发送测试邮件**:发送一封简单的测试邮件到自己的邮箱,检查是否收到。 5. **分析结果**:根据工具返回的反馈信息,解决出现的任何问题。 总的来说,SMTP测试邮件发送工具是IT人员、系统管理员和普通用户排查...

    MQ消息测试工具 可直接向MQ写消息

    MQ消息测试工具在软件开发和维护中扮演着关键角色,允许开发者验证和调试MQ消息的发送与接收过程。标题提到的“MQ消息测试工具 可直接向MQ写消息”正是一款这样的实用工具,专门设计用来测试MQ消息接收程序的效能和...

    HID报告发送接收测试助手

    标题中的“HID报告发送接收测试助手”是一个专门用于测试HID(Human Interface Device)设备的工具,主要用于验证和调试基于USB的HID设备。HID设备是人机交互设备的一种,包括键盘、鼠标、游戏控制器等,它们通过USB...

    DICOM图像发送测试工具

    DICOM图像发送测试工具是IT专业人员在医疗信息化领域中常用的实用工具,它主要用于验证和确保DICOM图像能够正确无误地从一台设备传输到另一台设备。 DICOM图像发送测试工具的主要功能包括: 1. 图像上传:工具...

    TCP发送接收测试

    在这个“TCP发送接收测试”中,我们主要关注的是使用C#编程语言实现TCP客户端和服务器端的交互。 首先,我们来讨论TCP_Listener,这是一个代表TCP服务器的程序。在C#中,我们可以使用System.Net.Sockets命名空间中...

Global site tag (gtag.js) - Google Analytics