公司用过基于websphere上的JMS的应用,主要用的是QUEUE,关于topic的还没有用到过,但是,国内许多公司用的开源的比较多一点,因为成本比较低,现阶段是SSH成风,所以spring的JMS(MQ)的应用是要学习一下,今天学习的是spring上应用activeMQ,都是开源的,呵呵.
下面列一下步骤:
1) ActiveMQ的启动.
启动比较简单,下载ActiveMQ, 进入bin目录,启动activemq.bat.就可以了, 端口是8161.
2) 可以访问http://localhost:8161/admin进入activeMQ的console,控制台中可以手动添加和删除message, 比较方便.
3) 服务器配置
服务器用的是tomcat,主要配置是设置activeMQ的 factory与queue名称.
在 x:\tomcat-5.5\conf\context.xml 设制相关jndi
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://localhost:61616"
brokerName="LocalActiveMQBroker"/>
<Resource name="jms/Queue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
description="my Queue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="TOOL.DEFAULT"/>
</Context>
这些基本上是比较死的东西, physicalName是指queue的名字,我用的是activeMQ的初始就有的一个。
spring中对activeMQ的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
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
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jms/ConnectionFactory"></property>
</bean>
<bean id="jmsQueue"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jms/Queue"></property>
</bean>
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
<property name="defaultDestination" ref="jmsQueue"></property>
</bean>
<bean id="sender" class="message.Sender">
<property name="jmsTemplate" ref="jmsTemplate"></property>
</bean>
<bean id="receive" class="message.Receiver"></bean>
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
<property name="destination" ref="jmsQueue"></property>
<property name="messageListener" ref="receive"></property>
</bean>
</beans>
sender与receiver的代码
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
public class Sender {
private JmsTemplate jmsTemplate;
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public void send(final String text){
System.out.println("---Send:"+text);
jmsTemplate.send(new MessageCreator(){
public Message createMessage(Session arg0) throws JMSException {
// TODO Auto-generated method stub
return arg0.createTextMessage(text);
}
});
}
}
package message;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class Receiver implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage text = (TextMessage) message;
try {
System.out.println("Receive:" + text.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
主要测试了对MQ监听的功能,也就是MessageListener ,当程序启动后手动的在console里面添加了几条消息,可以监听到,另外ActiveMQ里的例子里面还有发送与消费的工具,比较好用,ConsumerTool和ProducerTool.
附件有个可以跑的例子.
分享到:
相关推荐
**ActiveMQ与Spring整合详解** ActiveMQ是Apache组织开发的一款开源消息中间件,它遵循Java消息服务(JMS)规范,提供可靠的消息传递和高效的消息处理能力。在企业级应用中,ActiveMQ常用于实现应用之间的解耦,...
《ActiveMQ与Spring整合源代码解析》 ActiveMQ和Spring的整合是企业级应用中常见的一种技术组合,尤其在分布式系统和微服务架构中,消息队列(Message Broker)如ActiveMQ扮演着至关重要的角色。它能有效地实现系统...
ActiveMQ作为Apache软件基金会的一个项目,是一款开源的消息中间件,支持多种协议,如AMQP、STOMP、MQTT等,并且与Java平台紧密结合。Spring框架则是一个广泛使用的Java企业级应用开发框架,提供了一整套的解决方案...
《ActiveMQ与Spring整合的简单示例解析》 在当今的分布式系统中,消息队列作为解耦组件、实现异步处理的重要工具,被广泛应用。本文将以“activemq+spring demo”为例,深入探讨如何将Apache ActiveMQ与Spring框架...
《ActiveMQ 5.5.1与Spring模板的深度整合》 在当今的企业级应用开发中,消息中间件起着至关重要的作用,它能够有效地解耦应用程序,提高系统的可扩展性和可靠性。Apache ActiveMQ作为开源社区中最受欢迎的消息...
在本文中,我们将深入探讨如何将ActiveMQ与Spring框架整合,以便更高效、便捷地实现消息的收发。首先,ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它支持多种消息协议,如JMS(Java消息服务),并提供...
这个"activeMQ+spring+springmvc整合示例"旨在帮助开发者理解如何将这三者结合,以实现消息队列(Message Queue)的功能,提高系统的异步处理能力和负载均衡。以下是关于这一整合的详细知识讲解: 1. **ActiveMQ**:...
在IT行业中,消息队列(Message Queue,简称MQ)是一种重要的中间件,它在分布式系统中扮演着数据...通过学习和理解这个示例,开发者可以掌握如何在自己的项目中整合ActiveMQ和Spring,以实现高效、可靠的异步通信。
2. **Spring与ActiveMQ的整合**:`Spring`提供了`JmsTemplate`类,可以方便地与`ActiveMQ`进行集成。通过配置`ConnectionFactory`和`Destination`(Queue或Topic),可以在`Spring`应用中发送和接收消息。 3. **...
《ActiveMQ与Spring整合——深度解析5.5.0版本》 在Java消息服务(Java Message Service,简称JMS)领域,Apache ActiveMQ是广泛使用的开源消息代理和集成框架。它支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,...
在本文中,我们将深入探讨如何将ActiveMQ与Spring框架整合,构建一个简单的消息传递系统。ActiveMQ是Apache软件基金会开发的开源消息中间件,而Spring则是一个广泛使用的Java企业级应用开发框架。将两者结合,我们...
SpringActiveMQ入门示例是关于如何在Java环境中利用Spring框架与Apache ActiveMQ集成的一个实践教程。这个示例主要适用于开发者想要了解如何在Spring应用中使用消息队列进行异步通信和解耦。在这个项目中,开发环境...
ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...
**标题:“ActiveMQ与Spring整合”** 在Java企业级应用中,消息中间件扮演着重要的角色,它允许应用程序之间通过异步通信交换数据。ActiveMQ是Apache出品的一款开源、高性能、支持多种协议的消息队列,而Spring框架...
通过这个名为"AMQSpringDemoCXY"的示例,我们可以学习如何将ActiveMQ和Spring有效地结合起来,实现基于JMS的消息通信。这种集成使得开发人员能够在Spring应用中轻松地利用ActiveMQ的功能,构建出高可用、可扩展的...
标题中的“ActiveMQ与Spring集成实例之使用Maven构建”是指在Java开发环境中,通过Maven构建工具将Apache ActiveMQ消息中间件与Spring框架整合在一起的实际操作案例。这个主题涵盖了几大关键知识点: 1. **Apache ...
以下是一个简单的Spring与ActiveMQ整合的代码示例: ```java @Configuration public class JmsConfig { @Bean public ConnectionFactory connectionFactory() { ActiveMQConnectionFactory factory = new ...
在开发中,开发者需要将ActiveMQ与C#应用程序结合,使用***框架来开发消息队列系统,这涉及到配置连接工厂、队列目的地、消息监听器容器等组件,以及编写消息消费者和生产者的代码逻辑。 在C#应用程序中使用***框架...
**ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...