`
uule
  • 浏览: 6350531 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

JMS发送消息工具类MsgQueueSender

 
阅读更多

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();
		}

 。。

 

 

 

分享到:
评论

相关推荐

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

    2. 使用WebLogic提供的工具或者自定义的应用程序来发送和接收消息,验证JMS配置是否正确。 ### 五、高级特性 - **持久性**:通过设置消息的持久性,即使在服务器故障后,消息也不会丢失。 - **事务**:在JMS会话中...

    Spring发送接收JMS消息

    在Spring中,我们通常使用`JmsTemplate`类来发送消息。首先,需要配置`ConnectionFactory`和`JmsTemplate`。下面是一个简单的配置示例: ```xml <bean id="jmsTemplate" class="org.springframework.jms.core....

    JMS之ActiveMQ工具类+使用例子.zip

    JMS是一种标准,定义了在Java平台上创建、发送、接收和读取消息的应用程序接口。它提供了一种可靠的消息传递机制,确保数据可以在分布式系统中安全传输。JMS提供两种主要的消息模型:点对点(Point-to-Point,P2P)...

    JMS消息发送及订阅

    在这个主题中,我们将深入探讨JMS消息的发送和订阅,以及如何通过Apache Camel这一集成框架来实现。 **JMS核心概念** 1. **消息**: JMS中的基本单元,它包含了要传递的数据。 2. **生产者**: 创建并发送消息的应用...

    JMS简明教程创建消息 -> 发送消息 -> 接收消息 -> 读取消息

    -> 创建消息 -> 发送消息 -> 接收消息 -> 读取消息 为什么要使用消息 理由很简单,消息是一个分布式的低耦合通讯方案。A发送一个消息到一个agent ,B作为接受者去agent上获取消息。但是A,B不需要同时到agent上去...

    Spring+weblogic9.2发送JMS消息

    本话题主要探讨如何在Spring框架下与WebLogic 9.2集成,实现JMS(Java Message Service)消息的发送。 首先,JMS是一种标准的API,用于在分布式环境中传递消息。通过JMS,应用可以在异步和解耦的方式下进行通信,...

    JMS消息队列

    JMS-java message Service ,消息队列原理介绍,适合activeMQ开发使用

    编码实现MQ连接池实现JMS消息发送连接管理

    本文将详细解析如何通过编码实现MQ连接池,以便有效地管理和发送JMS消息。 首先,理解JMS的基本概念是至关重要的。JMS提供两种主要的消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/...

    【JMS接收端需要用到的jar包】

    同时,正确配置JMS连接工厂、目的地(如队列或主题)、以及消费者和生产者的实现是成功接收和发送消息的关键。记得在部署环境中添加这些依赖,并在代码中正确引用,以实现高效、可靠的JMS通信。

    【JAVA、JMS发送端所需要用到的jar包】

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和读取消息的应用程序接口。它提供了一种标准的方式,使得应用程序可以与其他应用程序进行异步通信,这对于分布式系统中的解耦和...

    Jms基础知识整理创建消息 -> 发送消息 -> 接收消息 -> 读取消息 ()

    【JMS基础知识详解:创建、发送、接收与读取消息】 Java消息服务(Java Message Service,简称JMS)是一个标准接口,它定义了应用程序如何创建、发送、接收和读取消息的标准API。JMS允许分布式系统中的不同组件通过...

    jms-1.1.jar(jms工具jar包)

    在实际应用中,`javax.jms-1.1.jar` 提供了JMS API的实现,开发人员可以使用这些API创建消息、连接到消息代理、创建生产者和消费者,以及进行消息的发送和接收。例如,使用`ConnectionFactory`创建连接工厂,然后...

    springboot整合jms进行邮件的发送

    在本文中,我们将深入探讨如何使用Spring Boot与Java消息服务(JMS)来发送电子邮件,包括文本、HTML、图片和附件。Spring Boot以其强大的依赖管理和自动化配置能力,使得集成各种功能变得异常简单,包括集成JMS进行...

    activemq与spring整合发送jms消息入门实例

    本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...

    JMS消息队列机制及案例

    - **生产消息**:使用JMS的MessageProducer接口发送消息到队列或主题。 - **消费消息**:使用MessageConsumer接口接收并处理消息。 在实际应用中,开发者可以结合ActiveMQ的特性和JMS规范,构建高效、可靠的...

    Spring-boot JMS 发送消息慢的解决方法

    Spring-boot JMS 发送消息慢的解决方法 Spring-boot JMS 发送消息慢的解决方法是指在使用 Spring-boot 框架与 JMS(Java Message Service)集成时,出现发送消息缓慢的问题。该问题可能会导致系统性能下降,影响...

    基于WebSphere MQ发送消息的简单JMS实例

    4. **编写JMS代码**:创建一个Java类,初始化JMS连接工厂、会话、生产者和消息对象。连接工厂用于创建到MQ服务器的连接,会话则用于管理事务和并发。以下是一个简单的示例: ```java import javax.jms.Connection; ...

    JMS 教程 - 消息队列、消息服务

    在JMS中,消息由客户端发送至消息服务器,再由消息服务器转发给目标客户端。这种方式不仅降低了客户端之间的耦合度,还极大地提高了系统的可扩展性和健壮性。 #### JMS核心概念及编码实践 JMS提供了一套标准的Java...

    jms远程IBM MQ 收发消息

    在IT行业中,Java消息服务(Java Message Service,简称JMS)是一种标准,它定义了应用程序如何创建、发送、接收和读取消息的标准API。IBM MQ是IBM提供的一个强大的消息中间件,它允许分布式系统中的不同组件通过...

    JMS消息模型 JMS学习.doc

    4. **JMS Tools**:JMS提供了一系列工具,包括消息生产者、消费者和管理工具,帮助开发者创建、管理和监控消息的生命周期。 5. **JMS Exception Handling**:JMS规范定义了异常处理机制,确保在遇到错误时,消息...

Global site tag (gtag.js) - Google Analytics