快速业务通道

深入探讨EJB中新的消息驱动组件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

深入探讨EJB中新的消息驱动组件

时间:2010-12-16

提要:我们可以使用MessageDrivenBean(消息驱动组件),在企业级的应用程序中进行异步的消息传送。

引言:Enterprise JavaBeans(EJB)1.1版本中定义了两种组件类型—session组件和entity组件。客户端对象可以同步调用EJB1.1的这两种组件的方法,然而,为了继承Message Oriented Middleware(MOM,面向对象的中间件)和Java Message Service(JMS,Java消息服务)的优点的需要,EJB框架中也相应的应当加入异步的消息通讯机制,所以,在EJB2.0中就定义了第三种组件类型----MessageDrivenBean(消息驱动组件)

MessageDrivenBean兼备EJB和JMS的功能,当然,如果您想要消息操作技术,那么您大可只使用JMS就行了,但是新的消息驱动组件MessageDrivenBean提供了消息通讯的新的可能性。那么,这些组件如何整合到一个应用程序服务器框架中?他们的功能又如何扩大了过去JMS服务器的使用范围?让我们看下文吧!

EJB和JMS

前面我们已经说过了,EJB1.1种为开发者定义了两个企业级组件类型-----session和entity组件。session组件通常实现一些商业逻辑并且不能在多客户端共用。Entity组件则描述一个实体的面向对象的概念,而这个实体往往存在于像数据库那样固定的存储容器中。在这两种组件模型中,使用本地的或远程的接口来简化客户端的交互作用。按照定义,这种交互作用是严格的同步的。举例来说,通过一个方法调用把一个请求发送给组件,然后服务器对象返回一个响应。(如图1),

深入探讨EJB中新的消息驱动组件 - 编程入门网

然而,在企业版应用程序的范围中,也经常需要异步的消息传递,比方说,一个客户可能想发给服务器一条信息,但是并不需要或者不想要服务器做出应答,这时,客户端就没有必要等待服务器对象处理请求。对于客户端应用程序来说,在确保消息最终能够到达服务器并被正常处理的前提下,提交一条消息然后继续处理本身的事务,将会在很大的程度上提高效率。

能够处理异步消息的能力的Java技术可以在Java Message Service(JMS)中找到,JMS原本就是被开发来提供传统的Message Oriented Middleware(MOM)产品的一个标准Java接口。

现在,一些公司开发出了一整套新一代轻量级高效的纯Java的JMS产品,这些产品是开发者能够建立JMS连接来发布或从其它应用程序组件中接受消息。下面的例程给出了与一个JMS提供者接口的必要步骤:

代码段一:准备客户端

客户端应用程序使用了带有JMS 主题的MessageListener来接受和处理消息。

import javax.jms.*; /** *一个例程,演示如何取得一个JMS *连接并取得一个消息监听者。在本例中 *我们将获取一个与一个JMS主题的连接 */ public class JMSSample { public static void main (String args[]) { InitialContext context = new InitialContext(); // 查找主题 Topic topic (Topic)context.lookup("MyTopic"); file://取得我们创建JMS连接时所要用到的连接创建器 TopicConnectionFactory tcf = (TopicConnectionFactory)context.lookup( "TopicConnectionFactory"); // 创建JMS连接 TopicConnection conn = tcf.createTopicConnection(); // 从连接中创建JMS session。 // 这样我们就可以创建一个非事务处理、AUTO_ACKNOWLEDGE的连接 TopicSession session = conn.createTopicSession( false, Session.AUTO_ACKNOWLEDGE); // 创建主题订阅者 TopicSubscriber subscriber = session.createSubscriber(topic); // 监听者 subscriber.setMessageListener(myListener); // 指出我们将要接受信息的连接 conn.start(); } }

深入探讨EJB中新的消息驱动组件(2)

时间:2010-12-16

除了采用上面的步骤取得JMS MessageConsumer(消息消费者)的连

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号