本文将对JMS API作一个概述,并通过一个运行在Weblogic服务器上的web例程来介绍如何使用JMS API来异步处理(发送和接收)消息。<o:p></o:p>
异步消息传递和面向服务架构<o:p></o:p>
在现实中,大多数web请求都是同步处理的。例如,当用户要登入一个网站,首先输入用户名和密码,然后服务器验证登录合法性。如果验证成功,程序将允许该用户进入网站。这里,登录请求在从客户端接收以后被即时处理了。但是有些情况下不得不采用异步调用的方式,这个时候向消息队列发送一个消息,其中的请求是异步执行的,客户端可以立即就返回。<o:p></o:p>
JMS<o:p></o:p>
如果您使用过JMS代码,您会发现它与JDBC或JCA很像。它所包含的样本代码创建或JMS资源对象回溯,使得每一次您需要写一个新类来发送和接收消息时,都具有更好的代码密集性和重复性。以下序列显示了传统JMS实现所包括的步骤:<o:p></o:p>
1. 创建JNDI初始上下文(context)。 <o:p></o:p>
2. 从JNDI上下文获取一个队列连接工厂。 <o:p></o:p>
3. 从队列连接工厂中获取一个Quene。 <o:p></o:p>
4. 创建一个Session对象。 <o:p></o:p>
5. 创建一个发送者(sender)或接收者(receiver)对象。 <o:p></o:p>
6. 使用步骤5创建的发送者或接收者对象发送或接收消息。 <o:p></o:p>
7. 处理完消息后,关闭所有JMS资源。 <o:p></o:p>
您可以看到,步骤6是处理消息的唯一地方。其他步骤都只是管理与实际业务要求无关的JMS资源,但是开发人员必须编写并维护这些额外步骤的代码。 <o:p></o:p>
Spring JMS<o:p></o:p>
Spring框架提供了一个模板机制来隐藏Java APIs的细节。J2EE开发人员可以使用JDBCTemplate和JNDITemplate类来分别访问后台数据库和JEE资源(数据源,连接池)。JMS也不例外。Spring提供JMSTemplate类,因此开发人员不用为一个JMS实现去编写样本代码。接下来是在开发JMS应用程序时Spring所具有一些的优势。<o:p></o:p>
1. 提供JMS抽象API,简化了访问目标(队列或主题)和向指定目标发布消息时JMS的使用。 <o:p></o:p>
2. JEE开发人员不需要关心JMS不同版本(例如JMS <st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.0.2</st1:chsdate>与JMS 1.1)之间的差异。 <o:p></o:p>
3. 开发人员不必专门处理JMS异常,因为Spring为所有JMS异常提供了一个未经检查的异常,并在JMS代码中重新抛出。 <o:p></o:p>
一旦您在JMS应用程序中开始使用Spring,您将会欣赏到它在处理异步消息传递上的简便。Spring JMS框架提供多种Java类,可以轻松实现JMS应用。 表面上看Spring获胜,代码少了很多。但是Spirng JMS的配置文件同样是很复杂。要配置jndiTemplate,jndiTemplate,sendDestination,receiveDestination,jmsTemplate等,这里就不列举了。<o:p></o:p>
分享到:
相关推荐
4. **实现消息监听器**:创建一个实现了`javax.jms.MessageListener`接口的类,用于接收和处理消息。当消息到达时,JMS容器会自动调用`onMessage`方法。 ```java @Component public class MyMessageListener ...
在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...
**Spring JMS 实现异步消息传递** 在 IT 领域,特别是在 Web 应用开发中,异步消息传递是一种提高系统效率和响应性的重要技术。传统的同步处理方式可能会导致用户等待时间较长,尤其是在处理复杂的业务逻辑或者需要...
4. 对于消息接收,可以使用 `MessageListener` 接口实现消息监听器,或者在 `DefaultMessageListenerContainer` 中配置一个回调方法。 **示例代码片段**: ```java @Configuration public class JmsConfig { @...
Java消息服务(JMS)是Java平台上用于异步通信的标准API。它允许应用程序通过消息传递在分布式系统中进行通信,从而实现解耦和提高...通过截图和教程,WSAD提供了一个全面的平台,帮助开发者理解和实现JMS异步通信。
Java消息服务(JMS)是用于编写使用异步消息传递的JEE应用程序的API。传统的使用JMSAPI进行消息传递的实现包括多个步骤,例如JNDI查询队列连接工厂和Queue资源,在实际发送和接收消息前创建一个JMS会话。Spring框架则...
通过对比传统JMS实现和Spring JMS,我们可以看到Spring JMS显著减少了开发者处理消息时的代码量和复杂性,使得异步消息处理的实现更为简洁。这不仅降低了出错的可能性,也使得代码更易于测试和维护。Spring JMS的...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它提供了一种可靠的消息传递机制,使得应用程序可以在分布式环境中交换数据。JMS允许应用程序创建、发送、接收和...
总结起来,JavaEE异步消息处理通过JMS和消息队列实现了客户端和服务端之间的解耦和高效通信,利用线程池和异步处理提升了系统的并发性和响应能力。开发者可以利用各种框架和工具,如EJB的MDB或Spring的JMS支持,轻松...
这两个功能的实现都需要对EASERVER的JMS(Java消息服务)或者MQ(消息队列)接口有深入的理解,因为这些技术是异步消息传递的基础。 文件"CMS_VS2005_C#版.rar"包含了使用C#语言和VS2005开发的代码,可能包含了一个...
Message listener container 是 Spring 提供的一种异步消息监听器,可以与 JMS combined 使用,实现异步收发消息。 首先,我们需要了解 message listener container 的构成部分。Message listener container 需要...
JMS(Java Message Service)是一组 Java API,支持异步消息传递的企业级通信标准。它定义了一系列用于消息生产和消费的方法、协议和 API。 在 JMS 中有两种基本的消息传递模型: - **点对点(Point-to-Point, P2P...
通过配置`ConnectionFactory`、`JmsTemplate`和消息监听器,我们可以方便地实现消息的发送和接收,从而提高系统的可扩展性和解耦性。同时,Spring提供的事务管理和异步处理功能进一步增强了JMS的实用性。在实际项目...
Java实现的基于JMS(Java Message Service)协议的消息队列中间件是一种用于应用程序间异步通信的重要技术。消息队列允许应用程序将消息发送到队列而不必等待接收方的响应,提高了系统的可扩展性和容错性。JMS是Java...
在实际应用中,JMS可以用来实现异步处理、负载均衡、系统间通信等多种功能。例如,一个繁忙的Web应用可以使用JMS队列来缓存用户的请求,然后在后台处理这些请求,从而提高系统的响应速度和可扩展性。 总的来说,JMS...
JMS提供了一套标准的Java API,用于实现消息的生产、消费以及管理。JMS支持两种主要的消息传递模型:发布/订阅(Publish and Subscribe)和点对点(Point-to-Point)。这两种模型分别对应于不同的应用场景。 **发布...
JMS是Java平台上的标准接口,用于实现应用程序间的异步通信。本文将详细介绍如何在WebLogic中使用JMS来创建Queue(队列)和TOPIC(主题)并进行消息的发送与接收。 ### 一、JMS基本概念 1. **Queue(队列)**:...
2. JMS(Java Message Service)的集成:在WebLogic服务器中,异步消息通常是通过Java消息服务(JMS)来实现的。JMS是一种消息传递的标准,提供了创建、发送、接收和读取消息的API。WebLogic提供了JMS服务,使得...
- **日志记录**:分布式系统中的日志收集可以通过JMS主题实现,各个服务节点发布日志消息,日志收集器订阅并处理这些消息,实现跨服务器的日志聚合。 **Apache ActiveMQ介绍** Apache ActiveMQ是流行的开源JMS...