一:jms介绍
1.jms(java message service java消息服务),是J2EE规范的一部分,跟jdbc差不
多,sun只提供了接口,由各个厂商(provider)来进行具体的实现,然后使用者使用他们
的jar包进行开发使用即可。
2.另外在jms的API中,jms传递消息有两种方式,一种是点对点的Queue,还有一个是发布
订阅的Topic方式。区别在于:
3.对于Queue模式,一个发布者发布消息,下面的接收者按队列顺序接收,比如发布了10个
消息,有两个接收者A,B,那就是A,B总共会收到10条消息,不重复。
4.对于Topic模式,一个发布者发布消息,有两个接收者A,B来订阅,那么发布了10条消息,
A,B各收到10条消息。
二:ActiveMQ介绍
1.activeMQ是apache下的一个开源jms产品。
三:开始实现代码
1.使用activeMQ来完成jms的发送,必须要下载activeMQ,然后再本机安装,并且启动
activeMQ的服务才行。在官网下载完成之后,运行bin目录下面的activemq.bat,将
activeMQ成功启动。
2.启动成功之后可以运行:http:// localhost:8161/admin/index.jsp 查看一下。
3.spring-jms.xml配置
<?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"
xmlns:jms="http://www.springframework.org/schema/jms"
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
http:// www.springframework.org/schema/jms
// http://www.springframework.org/schema/jms/spring-jms-2.5.xsd">
<bean id="jndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">
org.apache.activemq.jndi.ActiveMQInitialContextFactory
</prop>
<prop key="brokerURL">tcp:// localhost:61616</prop>
<prop key="queue.myqueue">myqueue</prop>
<prop key="connectionFactoryNames">
ConnectionFactory
</prop>
</props>
</property>
</bean>
<bean id="connectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="ConnectionFactory" />
<property name="jndiTemplate" ref="jndiTemplate" />
</bean>
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestinationName" value="myqueue" />
<property name="pubSubDomain" value="false" />
</bean>
<bean id="producer" class="com.mypack.SpringJmsProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
<bean id="consumer" class="com.mypack.SpringJmsConsumer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
</beans>
package com.mypack;
import org.springframework.jms.core.JmsTemplate;
public class SpringJmsConsumer {
private JmsTemplate jmsTemplate;
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public String receive() {
return (String) jmsTemplate.receiveAndConvert();
}
}
package com.mypack;
import org.springframework.jms.core.JmsTemplate;
public class SpringJmsProducer {
private JmsTemplate jmsTemplate;
public void send(String message) {
jmsTemplate.convertAndSend(message);
}
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
}
package com.mypack;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringJmsConsumerMain {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext(
"spring-jms.xml");
SpringJmsConsumer consumer = null;
consumer = (SpringJmsConsumer) factory.getBean("consumer");
System.out.println("message = " + consumer.receive());
}
}
package com.mypack;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringJmsProducerMain {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext(
"spring-jms.xml");
SpringJmsProducer producer = null;
producer = (SpringJmsProducer) factory.getBean("producer");
producer.send("hello world,jms");
}
}
分享到:
相关推荐
**JMS介绍** Java消息服务(Java Message Service,简称JMS)是一种标准API,用于在分布式环境中进行消息传递。它的主要目标是提供一种与供应商无关的方式,让Java应用程序能够发送和接收消息。JMS允许应用之间通过...
本文旨在详细介绍JMS的核心概念、消息模型及编程模型,帮助读者深入理解JMS的工作原理及其应用场景。 #### 二、JMS基本概念 JMS是一种用于实现分布式系统中消息通信的标准或规范。其核心功能在于降低系统间的耦合...
### JMS介绍与核心知识点详解 #### 一、引言 在现代企业级应用开发中,消息传递系统作为实现分布式应用程序的重要组成部分,扮演着至关重要的角色。Java消息服务(Java Message Service, JMS)作为Java平台上的...
### JMS中间件ActiveMQ介绍 #### JMS (Java Message Service) 概述 Java Message Service(JMS)是Sun Microsystems提出的一种规范,用于统一不同的消息传递中间件(Message-Oriented Middleware, MOM)系统的接口...
1. **JMS介绍**:JMS允许应用程序创建、发送、接收和阅读消息。它提供了一种可靠且可扩展的方式来解耦应用程序,使得它们可以通过消息进行通信,而无需直接交互。 2. **Message Broker**:在WildFly中,JMS服务由...
#### 四、JMS介绍 **4.1 JMS简介** JMS是Java平台上的消息中间件API,它为应用程序提供了一种标准化的方式来创建、发送、接收和读取消息。 **4.2 JMS的核心概念** - **生产者/消费者模型**:生产者创建消息并将其...
产者在JMS中是指那些发送消息的客户端。它们通过Session接口创建MessageProducer对象来发送消息到指定的Destination,即消息队列(Queue)或主题(Topic)。MessageProducer可以设置各种属性,如发送消息的延迟、...
**一、WebSphere Application Server (WAS) v6 的服务集成与JMS介绍** - **背景概述** - 本培训资料旨在帮助用户熟悉IBM WebSphere Application Server Version 6(WAS v6)在服务集成、Java消息服务(JMS)以及消息...
JMS578介绍手册JMS578_Product+Brief.pdf JMS578固件(支持Android系统/linux系统) JMS578 windows的烧录工具和JMS578FwUpdate JMS578-Hardkenel-Release-v173.01.00.02-20190306.bin Android/linux使用方式参考...
OSB 中的 JMS 配置及队列使用是实现消息队列的重要手段,本文将详细介绍 OSB 中 JMS 配置及队列使用的步骤。 环境准备 在开始配置 JMS 之前,需要安装 Oracle Service Bus (OSB) 10.3.1 和 Weblogic 服务器。同时...
这表明讨论可能涉及到JMS的底层实现细节,比如通过查看源码理解JMS的工作机制,或者是介绍一些实用的工具来辅助JMS的开发和调试,例如消息监视工具、性能测试工具等。源码分析可以帮助开发者更深入地理解JMS如何处理...
本文将详细介绍如何在 Maximo 中配置 JMS,以便实现高效的系统间通信。 #### 二、配置前准备 在开始配置 JMS 之前,确保具备以下条件: 1. **熟悉 Oracle WebLogic Server 管理控制台**:配置 JMS 时需要用到 ...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它允许应用程序创建、发送、接收和阅读消息,有效地支持分布式系统的解耦和可靠性传输。JMS在Java应用程序之间提供...
本文将详细介绍如何在WebLogic中使用JMS来创建Queue(队列)和TOPIC(主题)并进行消息的发送与接收。 ### 一、JMS基本概念 1. **Queue(队列)**:队列是一种点对点的消息传递模型,其中每个消息只会被一个消费者...
1. "JMS578_FW_Update step(固件更新步骤).pdf" - 这是一个PDF文档,详细介绍了如何使用JMS583量产工具来更新设备的固件。固件是存储在硬件上的软件,控制着设备的操作,更新固件可以修复问题,提高性能,或者添加...
尽管描述中并未给出具体信息,但我们可以推断这篇博文可能详细介绍了如何使用JMS与ActiveMQ结合来实现文件传输。博主可能讨论了如何配置ActiveMQ服务器,以及如何通过JMS API创建消息,将文件内容封装到消息中,然后...
由于标签包含了“源码”和“工具”,这篇博文可能深入解析了JMS的实现细节,或者介绍了与JMS相关的开发工具,如消息代理(message broker)如Apache ActiveMQ、RabbitMQ等,或者是用于测试和调试JMS的工具。...