发送消息代码:
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 进行消息的分发和接收示例 应用中包含分通道发送和多线程接收
在C#编程中,我们可以利用Microsoft Message Queuing(MSMQ)库来实现消息队列的发送和接收。本文将深入探讨C#中如何使用MSMQ进行消息队列的操作,并通过示例代码来展示具体实现。 首先,我们需要理解消息队列的...
这个"串口通讯接收发送及测试程序"包含了实现这一功能的相关代码和资源。 首先,我们要理解串口通讯的基本原理。串口通讯通常使用TTL电平(0和5V)或RS-232标准,通过数据线(如RXD和TXD)进行数据传输。数据以比特...
微信企业号是一种为企业用户提供内部通讯和管理工具的服务,它允许开发者通过API接口进行定制化开发,实现自动化的工作流程和消息通知。本文将主要围绕以下几个核心知识点展开: 1. **微信企业号API**: 微信...
总之,TCP报文发送接收测试工具是网络开发和调试的利器,它通过模拟客户端和服务器,提供自动化报文发送,帮助我们理解和解决问题,确保TCP通信的高效、稳定和可靠。对于任何涉及TCP协议的项目,这样的工具都是必不...
5. 编写消息发送接口:为了将消息发送逻辑封装起来,可以创建一个服务类,提供发送消息的方法,这些方法可以根据需要接受不同的参数,比如消息主题和消息内容。 6. 发送消息业务类:在业务层,调用上述接口发送消息...
在实现消息的发送和接收时,我们需要进行测试,以确保程序的正确性和可靠性。在这个程序中,我们可以使用一些测试用例来检测程序的正确性和可靠性。 源程序 在这个程序中,我们提供了一个完整的源程序,包括消息...
【标题】基于Servlet发送、接收SOAP消息的Java源程序 在Web服务开发中,SOAP(简单对象访问协议)是一种常见的消息传输协议,用于在不同系统间交换结构化和类型化的信息。Servlet作为Java Web应用程序的核心组件,...
本示例涉及的主题是“socket服务和客户端测试XML文件接收和发送”,这是一个使用C#语言实现的项目,它允许通过Socket进行XML数据的交换。让我们深入探讨这个主题,了解其背后的原理和实现方法。 首先,Socket是TCP/...
在Windows操作系统中,经常使用各种串口接收和发送测试工具来进行设备调试、数据监测或系统集成工作。本文将深入探讨串口通信的基本原理、Windows环境下的串口工具以及如何使用这些工具进行数据收发。 串口通信的...
在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行消息的接收和发送。微信企业号是一个为企业提供内部沟通和管理的平台,它允许企业与员工、客户和其他合作伙伴进行互动。C#作为.NET框架的主要编程语言,...
RS232串口有9针或25针D型连接器,其中包含数据发送(TXD)、数据接收(RXD)和其他控制线如请求发送(RTS)和清除发送(CTS)等,这些线缆用于确保数据的正确传输。 RS485则是一种多点、双向通信标准,扩展了RS232...
WebLogic Server是一款由Oracle公司提供的企业级应用服务器,它支持Java Message Service (JMS) 规范,允许在分布式环境中可靠地发送和接收消息。JMS是Java平台上的标准接口,用于实现应用程序间的异步通信。本文将...
在本文中,我们将深入探讨如何使用TwinCAT3,倍福的自动化软件,进行EL6021串口自由协议的Byte型数据发送和接收测试。EL6021是一款常用于工业自动化领域的串行通信模块,其自由协议功能允许用户自定义通信协议,以...
5. **测试**:在完成上述配置后,启动Web工程,你应该能够在ActiveMQ控制台看到队列`myQueue`,并且能够观察到消息的发送和接收。 这个例子展示了如何在Spring Web工程中集成ActiveMQ,实现消息的发送和接收。通过...
4. **发送测试邮件**:发送一封简单的测试邮件到自己的邮箱,检查是否收到。 5. **分析结果**:根据工具返回的反馈信息,解决出现的任何问题。 总的来说,SMTP测试邮件发送工具是IT人员、系统管理员和普通用户排查...
MQ消息测试工具在软件开发和维护中扮演着关键角色,允许开发者验证和调试MQ消息的发送与接收过程。标题提到的“MQ消息测试工具 可直接向MQ写消息”正是一款这样的实用工具,专门设计用来测试MQ消息接收程序的效能和...
标题中的“HID报告发送接收测试助手”是一个专门用于测试HID(Human Interface Device)设备的工具,主要用于验证和调试基于USB的HID设备。HID设备是人机交互设备的一种,包括键盘、鼠标、游戏控制器等,它们通过USB...
DICOM图像发送测试工具是IT专业人员在医疗信息化领域中常用的实用工具,它主要用于验证和确保DICOM图像能够正确无误地从一台设备传输到另一台设备。 DICOM图像发送测试工具的主要功能包括: 1. 图像上传:工具...
在这个“TCP发送接收测试”中,我们主要关注的是使用C#编程语言实现TCP客户端和服务器端的交互。 首先,我们来讨论TCP_Listener,这是一个代表TCP服务器的程序。在C#中,我们可以使用System.Net.Sockets命名空间中...