- 浏览: 1504772 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
另见: ActiveMQ5.0实战一: 安装配置ActiveMQ5.0 ActiveMQ5.0实战二: 基本配置 http://www.iteye.com/topic/234101 ================================================
环境:apache-activemq-5.4.2 ,spring2.5,jdk1.6
首先启动消息代理:在apache-activemq-5.4.2\bin下
运行
activemq.bat。
example1:
package jms.activemq.myexample.spring;
import java.util.Date;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.springframework.jms.core.MessageCreator;
public class MyMessageCreator implements MessageCreator {
/**
* 消息序号
*/
private int msgNo;
public MyMessageCreator(int no) {
this.msgNo = no;
}
@Override
public Message createMessage(Session session) throws JMSException {
TextMessage textMsg = session.createTextMessage();
textMsg.setText(new Date() + "第" + this.msgNo + "条消息发出");
return textMsg;
}
}
package jms.activemq.myexample.spring;
import javax.jms.*;
/**
* Text消息监听
*
* @author xiaochuanyu
*
*/
public class TextListener implements MessageListener {
/**
* Casts the message to a TextMessage and displays its text.
*
* @param message
* the incoming message
*/
public void onMessage(Message message) {
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
System.out.println("Reading message: " + msg.getText());
} else {
System.out.println("Message of wrong type: "
+ message.getClass().getName());
}
} catch (JMSException e) {
System.out.println("JMSException in onMessage(): " + e.toString());
} catch (Throwable t) {
System.out.println("Exception in onMessage():" + t.getMessage());
}
}
}
package jms.activemq.myexample.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringJmsTestMain {
public static void main(String[] args) throws InterruptedException {
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "SpringJms/SpringJms.xml" });
SpringPublisher publisher = (SpringPublisher) context
.getBean("springPublisher");
publisher.start();
}
}
package jms.activemq.myexample.spring;
import javax.jms.Destination;
import org.springframework.jms.core.JmsTemplate;
public class SpringPublisher {
/**
* Jms模板
*/
private JmsTemplate template;
/**
* Topic
*/
private Destination topic;
public JmsTemplate getTemplate() {
return template;
}
public void setTemplate(JmsTemplate template) {
this.template = template;
}
public Destination getTopic() {
return topic;
}
public void setTopic(Destination topic) {
this.topic = topic;
}
/**
* Start
*
* @throws InterruptedException
*/
public void start() throws InterruptedException {
int messageCount = 10;
while ((--messageCount) > 0) {
sendMessage(messageCount);
Thread.sleep(1000);
}
}
/**
* 消息发送
*/
protected void sendMessage(int msgNO) {
this.template.send(this.topic, new MyMessageCreator(msgNO));
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- jms 连接工厂 -->
<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<!-- jms 连接池 -->
<!--
<bean id="pooledJmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory">
<ref local="jmsFactory" />
</property>
</bean>
-->
<!-- jms Topic -->
<bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic"
autowire="constructor">
<constructor-arg value="STOCKS.JAVA" />
</bean>
<!-- 消息监听器 -->
<bean id="myTextListener" class="jms.activemq.myexample.spring.TextListener">
</bean>
<!-- jms Consumer -->
<bean id="javaConsumer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsFactory" />
<property name="destination" ref="myTopic" />
<property name="messageListener" ref="myTextListener" />
</bean>
<!-- jms 模板 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="jmsFactory" />
</property>
</bean>
<!-- 消息发布器 -->
<bean id="springPublisher" class="jms.activemq.myexample.spring.SpringPublisher">
<property name="template">
<ref local="jmsTemplate" />
</property>
<property name="topic">
<ref local="myTopic" />
</property>
</bean>
</beans>
===================================================
example2:
package stujms.p2ptxt;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
/**
* 消息发送者
*
* @author leizhimin 2009-8-13 17:01:48
*/
public class MySender {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
Destination destination = (Destination) ctx.getBean("destination");
template.send(destination, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("发送消息:Hello ActiveMQ Text Message!");
}
});
System.out.println("成功发送了一条JMS消息");
}
}
package stujms.p2ptxt;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.TextMessage;
/**
* 消息接收者
*
* @author leizhimin 2009-8-13 17:02:04
*/
public class MyReceiver {
public static void main(String[] args) throws JMSException {
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
Destination destination = (Destination) ctx.getBean("destination");
while (true) {
TextMessage txtmsg = (TextMessage) template.receive(destination);
if (null != txtmsg)
System.out.println("收到消息内容为: " + txtmsg.getText());
else
break;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- 配置JMS连接工厂 -->
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
<!-- 配置JMS模版 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<!-- 发送消息的目的地(一个队列) -->
<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
<!-- 设置消息队列的名字 -->
<constructor-arg index="0" value="HelloWorldQueue"/>
</bean>
</beans>
运行发送端三次:
成功发送了一条JMS消息
Process finished with exit code 0
然后再运行接收端一次:
收到消息内容为: 发送消息:Hello ActiveMQ Text Message!
收到消息内容为: 发送消息:Hello ActiveMQ Text Message!
收到消息内容为: 发送消息:Hello ActiveMQ Text Message!
继续测试发现,接收端接收一条消息后不退出程序,而是继续等待,一旦有消息发送过来,就获取到,然后输出!
发表评论
-
JMS命名空间支持
2011-09-02 16:13 1774Spring 2.5引入了XML命名空间以简化JMS的配置。使 ... -
JMS与Spring之二(用message listener container异步收发消息)
2011-09-02 14:55 2972本文主要参考Java Message Service(2nd) ... -
JMS与Spring之一(用JmsTemplate同步收发消息)
2011-09-02 14:54 2069在Spring框架中使用JMS传递消息有两种方式:JMS te ... -
深入浅出JMS(二)——JMS的组成
2011-09-02 14:51 2040http://blog.csdn.net/aking21ali ... -
JMS支持
2011-09-02 14:39 143814.1. 介绍 Spr ... -
深入浅出JMS(一)——JMS简介
2011-09-01 17:12 2929如果手机只能进行实时 ... -
jms消息类型
2011-09-01 17:08 1346在JMS1.1规范中规定了5种JMS消息类型,分别如下: 1 ... -
ActiveMQ入门
2011-09-01 16:58 19801、环境 ... -
笔记之Spring-JMS
2011-08-31 19:24 1776JMS简介:一种应用于异 ... -
spring JMS、activemq中消费者收不到生产者发送的消息的原因解析
2011-08-31 16:53 22250我们使用jms一般是使用spring-jms和activemq ... -
常见Java开源JMS消息中间件及特性简介
2011-07-18 17:21 1485JMS开源消息中间件有很多,本文对常见的几种进行了列举和简单比 ... -
JMS-详解
2011-07-18 16:29 1212JMS-详解 -
JMS
2011-07-18 16:13 1494http://baike.baidu.com/view/157 ...
相关推荐
### Spring与JMS结合实例详解 #### 一、引言 在现代企业级应用开发中,消息中间件作为实现系统间解耦、提高系统稳定性的关键组件被广泛应用。Java消息服务(Java Message Service, JMS)是Java平台中关于面向消息...
下面将详细介绍如何整合JMS与Spring,以及一个简单的实例。 ### 1. 添加依赖 首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中添加JMS和Spring的依赖。通常,这包括JMS API、一个JMS...
在这个入门级实例中,我们将探讨如何使用Maven、Spring和ActiveMQ来构建一个简单的Spring JMS应用。 首先,Maven是一个项目管理和综合工具,它管理项目的构建、依赖关系和报告。在Spring JMS项目中,Maven用于管理...
本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...
本实例中,"JMS实例,整合spring,含jar"表明这是一个具体的项目示例,展示了如何在Spring框架中配置和使用JMS。这通常涉及到以下步骤: 1. **添加依赖**:首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的...
**JMS完全实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。...同时,结合Spring框架的使用,能让你更好地在实际工作中利用JMS实现高效、可靠的通信。
Spring JMS 是一个强大的框架,它极大地简化了Java企业级消息处理。它通过提供一套抽象和模板类,使得开发者能够更加便捷地使用Java消息服务(JMS),并与各种JMS提供者,如IBM的WebSphere MQ进行集成。本文将深入...
本文将深入探讨如何在Spring 3.0中整合JMS与ActivemQ,以及它们在实际应用中的关键知识点。 首先,我们要了解Spring对JMS的支持。Spring通过其`org.springframework.jms`包提供了丰富的JMS抽象,简化了JMS的使用。...
总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...
Spring 整合 Weblogic JMS 实例详解 Spring 整合 Weblogic JMS 实例详解是指在 Spring 框架下整合 Weblogic JMS 服务器,以便在应用程序中使用 JMS messaging。这种整合方式可以提供高性能、可靠性和灵活性的消息...
JMS与SPRING的整合实例(基于Apache ActiveMQ) 定义JMS连接工厂 定义JMS Template 定义消息目的地 定义接收监听器 定义一个JMS话题 定义消费者(接收端) 定义发布者 JAVA核心代码一般由三个部分组成: 监听器...
本教程将带你逐步了解如何利用Tomcat、Spring和JMS(Java Message Service)构建一个简单的异步消息传递入门实例。 首先,让我们来理解一下核心组件: 1. **Tomcat**:这是一个流行的开源Java Servlet容器,用于...
综上所述,"spring jms tomcat 异步消息传递入门实例"旨在引导开发者理解如何在Spring应用中结合Tomcat使用JMS实现异步消息传递,从而提升系统的响应能力和处理大规模并发的能力。通过这个实例,你可以学习到Spring...
基于Spring+JMS+ActiveMQ+Tomcat的整合ActiveMQSpringDemo实例源码,此实例基于Spring+JMS+ActiveMQ+Tomcat,注解的完整实例,包含jar包,可供学习及设计参考。
在整合Spring与JMS时,我们首先需要配置`ConnectionFactory`,它是创建与JMS服务器连接的工厂。对于ActiveMQ,我们可以创建一个`ActiveMQConnectionFactory`实例,并设置服务器地址、端口等参数。例如: ```xml ...
WebLogic与JMS+Spring的整合利用了WebLogic的稳定性和JMS的异步通信能力,结合Spring的灵活性和易用性,为开发高效、可扩展的企业级应用提供了强大的基础。通过详细的配置和测试,开发者可以确保系统能够正确地处理...
然而,需要注意的是,尽管Spring提供了ConnectionFactory的配置,但真正的JMS连接是由JMS服务厂商提供的ConnectionFactory来创建的,Spring中的bean需要将这个实际的工厂实例注入到Spring容器中。 10. 发布和订阅...
本文将深入探讨如何使用Spring框架与ActiveMQ结合实现基于JMS的消息传递系统。 首先,理解JMS的基本概念至关重要。JMS定义了生产者(Producer)、消费者(Consumer)和消息队列(Queue)或主题(Topic)等核心组件...
通过阅读和理解这些代码,你可以更好地了解Spring与ActiveMQ结合使用时的具体实现细节。 总的来说,通过Spring与ActiveMQ的整合,我们可以构建出可靠、高效的消息队列系统,从而改善系统的响应时间,提高可扩展性和...
下面将详细介绍Spring与JMS集成的相关知识点。 1. **Spring JMS概述** Spring框架提供了强大的支持来简化JMS的使用,包括自动配置、模板化API以及消息监听容器。通过Spring,我们可以轻松地创建生产者和消费者,...