package com.eway.jms;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.eway.pojo.Inhospitaldata;
import com.eway.util.Propertie;
/**
*
* @author yanghui
* @2009-07-03
* @消息发送
*
*/
public class QMProducer {
/**
* 定义JNDI上下文构造器
*/
public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";
/**
* 定义JMS上下文构造器
*/
public final static String JMS_FACTORY = "jms/QueueConnectionFactory";
/***************************************************************************
* 定义消息列队
*/
public final static String QUEUE = "jms/fileQueue";
// 声明队列连接构造器
private QueueConnectionFactory queueConnectionFactory = null;
// 声明队列连接
private QueueConnection queueConnection = null;
// 声明队列会话
private QueueSession queueSession = null;
// 声明队列发送
private QueueSender queueSender = null;
// 声明队列
private Queue queue = null;
// 声明发送对象方式
private ObjectMessage msg = null;
public void init(Context ctx, String queueName) {
try {
queueConnectionFactory = (QueueConnectionFactory) ctx
.lookup(JMS_FACTORY);
queueConnection = queueConnectionFactory.createQueueConnection();
queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
queue = (Queue) ctx.lookup(queueName);
queueSender = queueSession.createSender(queue);
msg = queueSession.createObjectMessage();
queueConnection.start();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void send(List<Inhospitaldata> message) throws JMSException {
msg.setObject((Serializable) message);
queueSender.send(msg);
}
public void close() throws JMSException {
queueSender.close();
queueSession.close();
queueConnection.close();
}
public void sendInfo(List<Inhospitaldata> inhospitaldataList) {
try {
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
System.setProperty(Context.PROVIDER_URL, Propertie.getPropertie()
.getProperty("provider"));
Context context = new InitialContext();
init(context, QUEUE);
send(inhospitaldataList);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
QMProducer producer = new QMProducer();
Inhospitaldata inhospitaldata = new Inhospitaldata();
inhospitaldata.setXm("yanghui131");
List<Inhospitaldata> list = new ArrayList<Inhospitaldata>();
list.add(inhospitaldata);
producer.sendInfo(list);
System.out.println("发送成功");
}
}
分享到:
相关推荐
实例中可能会展示如何创建消息监听器,并在接收到消息时执行特定的业务逻辑。 5. **POJO消息监听** 在一些实例中,我们可能会看到使用Plain Old Java Object(POJO)作为消息监听器的例子。这意味着消息监听器并不...
总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...
3. **创建消息模板**:Spring的`JmsTemplate`是发送和接收JMS消息的核心工具。在配置文件中创建一个`JmsTemplate`的bean,并注入连接工厂。 ```xml <bean id="jmsTemplate" class="org.springframework.jms.core....
在发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个 Topic 中,这个 Topic 可以同时有多个接收者在监听,当一个消息到达这个 Topic 之后,所有消息接收者都会收到这个消息。 JMS 中的概念包括 ...
JMS允许应用程序创建、发送、接收和读取消息,以此来解耦生产者和消费者,使得两者不必同时在线也能进行通信。在基于WebLogic的环境中,JMS被广泛应用于构建可扩展、高可用性的应用程序。 WebLogic Server是Oracle...
**JMS整合Spring实例** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它允许应用程序创建、发送、接收和读取消息,以此来解耦生产者和消费者。而Spring框架...
1. 概念理解:JMS是Java平台中用于企业级消息传递的API,它定义了生产、发送、接收和消费消息的标准接口。 2. 消息模型:JMS支持两种消息模型——点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。前者...
本教程将带你逐步了解如何利用Tomcat、Spring和JMS(Java Message Service)构建一个简单的异步消息传递入门实例。 首先,让我们来理解一下核心组件: 1. **Tomcat**:这是一个流行的开源Java Servlet容器,用于...
Destinations:Destinations 是指消息发送客户端的消息目标和消息接收客户端的消息来源,它也是预先在 jms.xml 定义好的。对于 PTP 类型,Destinations 对应的类型为 Queue,对于 Pub/Sub 类型,Destinations 对应的...
在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...
总结起来,`javax.jms.jar` 包提供了Java开发人员与JMS兼容的消息中间件进行通信的工具,而`demo` 文件中的实例代码展示了如何在实际应用中使用这些工具。通过学习和实践这些示例,你可以更好地理解和掌握Java消息...
在JMS中,消息被发送到一个消息代理(message broker),然后由消费者从该代理接收消息。这种方式允许应用程序之间进行解耦,使得它们可以在无需直接交互的情况下交换数据。 JMS主要包含两种模型: 1. 点对点...
同样,我们可以从JMS队列接收消息并处理: ```java from("activemq:queue:MyQueue") .process(new Processor() { public void process(Exchange exchange) throws Exception { Message message = exchange.getIn...
例如,使用`javax.jms.ConnectionFactory`创建连接,`javax.jms.Queue`或`javax.jms.Topic`定义目的地,`javax.jms.MessageProducer`发送消息,`javax.jms.MessageConsumer`接收消息。消息可以是TextMessage、...
JMS允许开发者在不关心接收方是否在线或能够立即处理消息的情况下发送数据,从而提高系统的可伸缩性和容错性。 **JMS基本概念** 1. **JMS API**:JMS 提供了一组接口和类,使得开发者能够创建、发送、接收和消费...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。JMS允许在分布式环境中交换异步...
- **`MessageListener`**:实现了JMS接口的监听器,用于处理接收到的消息。 - **`DefaultMessageListenerContainer`**:Spring提供的监听容器,可以自动启动和停止消息监听。 4. **配置JMS** 在Spring配置文件中...
**JMS(Java Message Service)** 是Java平台中用于企业级消息传递的一种API,它提供了一种标准的方式来创建、发送、接收和读取消息。JMS允许应用程序在不关心它们是否同时运行的情况下交换数据,这使得它成为分布式...
【JBoss 服务器下的 JMS 实例】 Java 消息服务 (JMS) 是 Java 平台中用于处理异步消息传递的标准API,它在面向服务架构 (SOA) 中扮演着关键角色,特别是在需要与外部系统进行异步通信的企业环境中。JBoss 服务器...