JMS工厂和队列JNDI配在配置文件jmsqueue.properties里,内容如下:
connectionFactoryName=ConnectionFactory queueName=/queues/InstanceQueue
工具类:
package com.test; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.util.Properties; import javax.jms.JMSException; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSession; import javax.naming.InitialContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 目的:读取jmsqueue.properties中消息队列的信息,初始化消息队列,提供发送消息的函数 * */ public class MsgQueueSender { private static final Logger logger = LoggerFactory.getLogger(MsgQueueSender.class); private static final MsgQueueSender ms = new MsgQueueSender(); private Properties info = new Properties(); /** * jms */ private QueueConnection conn; private Queue que; private MsgQueueSender() { initJMSInfo(); initMsgQueue(); } /** * 初始化jndi队列 * */ private void initMsgQueue() { InitialContext iniCtx; try { iniCtx = new InitialContext(); //获取工厂 Object tmp = iniCtx.lookup(info.getProperty("connectionFactoryName", "ConnectionFactory")); QueueConnectionFactory qcf = (QueueConnectionFactory) tmp; //获取连接 conn = qcf.createQueueConnection(); //获取队列 que = (Queue) iniCtx.lookup(info.getProperty("queueName", "/queues/InstanceQueue")); conn.start(); } catch (Exception e) { e.printStackTrace(); } } /** * 读取jms配置(包括工厂和队列JNDI) */ private void initJMSInfo() { InputStream is = this.getClass().getClassLoader().getResourceAsStream("jmsqueue.properties"); if (is != null) { try { info.load(is); } catch (IOException e) { e.printStackTrace(); } } } public static MsgQueueSender getInstance() { return ms; } public void sendTextMsg(String msg) throws JMSException{ QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); session.createSender(que).send(session.createTextMessage(msg)); session.close(); } public void sendObjMsg(Serializable obj) throws JMSException{ QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); session.createSender(que).send(session.createObjectMessage(obj)); session.close(); } }
调用:
try { MsgQueueSender.getInstance().sendTextMsg("Hello world!"); } catch (JMSException e) { e.printStackTrace(); }
。。
相关推荐
2. 使用WebLogic提供的工具或者自定义的应用程序来发送和接收消息,验证JMS配置是否正确。 ### 五、高级特性 - **持久性**:通过设置消息的持久性,即使在服务器故障后,消息也不会丢失。 - **事务**:在JMS会话中...
在Spring中,我们通常使用`JmsTemplate`类来发送消息。首先,需要配置`ConnectionFactory`和`JmsTemplate`。下面是一个简单的配置示例: ```xml <bean id="jmsTemplate" class="org.springframework.jms.core....
JMS是一种标准,定义了在Java平台上创建、发送、接收和读取消息的应用程序接口。它提供了一种可靠的消息传递机制,确保数据可以在分布式系统中安全传输。JMS提供两种主要的消息模型:点对点(Point-to-Point,P2P)...
在这个主题中,我们将深入探讨JMS消息的发送和订阅,以及如何通过Apache Camel这一集成框架来实现。 **JMS核心概念** 1. **消息**: JMS中的基本单元,它包含了要传递的数据。 2. **生产者**: 创建并发送消息的应用...
-> 创建消息 -> 发送消息 -> 接收消息 -> 读取消息 为什么要使用消息 理由很简单,消息是一个分布式的低耦合通讯方案。A发送一个消息到一个agent ,B作为接受者去agent上获取消息。但是A,B不需要同时到agent上去...
本话题主要探讨如何在Spring框架下与WebLogic 9.2集成,实现JMS(Java Message Service)消息的发送。 首先,JMS是一种标准的API,用于在分布式环境中传递消息。通过JMS,应用可以在异步和解耦的方式下进行通信,...
JMS-java message Service ,消息队列原理介绍,适合activeMQ开发使用
本文将详细解析如何通过编码实现MQ连接池,以便有效地管理和发送JMS消息。 首先,理解JMS的基本概念是至关重要的。JMS提供两种主要的消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/...
同时,正确配置JMS连接工厂、目的地(如队列或主题)、以及消费者和生产者的实现是成功接收和发送消息的关键。记得在部署环境中添加这些依赖,并在代码中正确引用,以实现高效、可靠的JMS通信。
Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和读取消息的应用程序接口。它提供了一种标准的方式,使得应用程序可以与其他应用程序进行异步通信,这对于分布式系统中的解耦和...
【JMS基础知识详解:创建、发送、接收与读取消息】 Java消息服务(Java Message Service,简称JMS)是一个标准接口,它定义了应用程序如何创建、发送、接收和读取消息的标准API。JMS允许分布式系统中的不同组件通过...
在实际应用中,`javax.jms-1.1.jar` 提供了JMS API的实现,开发人员可以使用这些API创建消息、连接到消息代理、创建生产者和消费者,以及进行消息的发送和接收。例如,使用`ConnectionFactory`创建连接工厂,然后...
在本文中,我们将深入探讨如何使用Spring Boot与Java消息服务(JMS)来发送电子邮件,包括文本、HTML、图片和附件。Spring Boot以其强大的依赖管理和自动化配置能力,使得集成各种功能变得异常简单,包括集成JMS进行...
本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...
- **生产消息**:使用JMS的MessageProducer接口发送消息到队列或主题。 - **消费消息**:使用MessageConsumer接口接收并处理消息。 在实际应用中,开发者可以结合ActiveMQ的特性和JMS规范,构建高效、可靠的...
4. **编写JMS代码**:创建一个Java类,初始化JMS连接工厂、会话、生产者和消息对象。连接工厂用于创建到MQ服务器的连接,会话则用于管理事务和并发。以下是一个简单的示例: ```java import javax.jms.Connection; ...
Spring-boot JMS 发送消息慢的解决方法 Spring-boot JMS 发送消息慢的解决方法是指在使用 Spring-boot 框架与 JMS(Java Message Service)集成时,出现发送消息缓慢的问题。该问题可能会导致系统性能下降,影响...
在JMS中,消息由客户端发送至消息服务器,再由消息服务器转发给目标客户端。这种方式不仅降低了客户端之间的耦合度,还极大地提高了系统的可扩展性和健壮性。 #### JMS核心概念及编码实践 JMS提供了一套标准的Java...
在IT行业中,Java消息服务(Java Message Service,简称JMS)是一种标准,它定义了应用程序如何创建、发送、接收和读取消息的标准API。IBM MQ是IBM提供的一个强大的消息中间件,它允许分布式系统中的不同组件通过...
4. **JMS Tools**:JMS提供了一系列工具,包括消息生产者、消费者和管理工具,帮助开发者创建、管理和监控消息的生命周期。 5. **JMS Exception Handling**:JMS规范定义了异常处理机制,确保在遇到错误时,消息...