得到消息: J2EE 1.4 中的消息[Java编程]
本文“得到消息: J2EE 1.4 中的消息[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在本文中,我将概述支持 1.4 版 J2EE 标准引入的消息所需的改变.我将分外解析 JMS 1.1 的需求以及利用时的新限制、与消息目标有关的新概念、以及 EJB 标准 2.1 版本为消息驱动 bean 所带来的明显改变.这些内容关于这些开辟人员和管理人员分外有效:他们熟习 J2EE 1.3 中的消息、并且但愿编写新的利用程序大概将现有消息利用程序移植到兼容 J2EE 1.4 的利用服务器上.
JMS 1.1
兼容 J2EE 的利用服务器目前需求支持 1.1 版的 Java 消息服务(Java Message Server,JMS)标准,这大概是新版本 J2EE 标准中最明显的改变.JMS 1.1 完好向后兼容 J2EE 1.3 标准所要求的 JMS 1.1,所以该当不需求改变现有的利用程序.JMS 1.1 引入了统一消息域,在 Bobby Woolf 的 这篇文章 中对它做了具体的谈论.值得夸大的是,除非需求向后兼容性,不然没有来由用老的行列和主题接口编写新的 JMS 利用程序.新的利用程序该当只利用新的统一接口,如清单 1 中的例子所示.
清单 1. 展示统一 JMS 接口的例子
InitialContext context = new InitialContext();
ConnectionFactory factory =
(ConnectionFactory) context.lookup("java:comp/env/jms/cf");
Destination source =
(Destination) context.lookup("java:comp/env/jms/source");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer consumer = session.createConsumer(source);
Message message = consumer.receive();
connection.close();
正如 Bobby 在他的文章中所说的,统一接口不但简化了消息编程模子,它们还使利用程序可以用一个事件 Session 接纳来自行列的消息,并向主题发送消息(大概相反).这意味着可以在同一个事件工作单元中举行发送和接纳,而无需借助于 bean 大概容器管理的事件.
J2EE 对 JMS 利用的限制
像从前版本的 J2EE 标准一样,1.4 版对 JMS 的利用有一些限制.我将在本节解析这些限制.
限制的接口
固然很多开辟人员大概不知道,但是 J2EE 标准关于 J2EE 利用程序若何利用 JMS API 老是有一些限制.比方,以下接口用于 JMS 供应者与利用服务器之间的集成(它们是在 JMS 标准中描写的 Application Server Facilities 的一部份),因而不能被利用程序利用:
javax.jms.ServerSession
javax.jms.ServerSessionPool
javax.jms.ConnectionConsumer
All javax.jms.XA interfaces
限制的办法
关于那些“利用程序组件在禁止成立线程的容器中不能履行”的办法,J2EE 1.3 标准给出了让人困惑的声明.EJB 容器不答应利用程序成立线程,但是一个 Web 容器 可以 答应利用程序这样做.后果,在 J2EE 1.3 中,按照所利用的 Web 容器,可以调用大概不可以调用这些办法.幸运的是,J2EE 1.4 标准删除了这些令人困惑的说法,只是阐明下列办法只能被运行在客户容器中的利用程序所利用——换句话说,它们不会在 Web 大概 EJB 容器中调用:
javax.jms.ServerSession method setMessageListener()
javax.jms.ServerSession method getMessageListener()
javax.jms.Session method run()
javax.jms.QueueConnection method createConnectionConsumer()
javax.jms.TopicConnection method createConnectionConsumer()
javax.jms.TopicConnection method createDurableConnectionConsumer()
javax.jms.MessageConsumer method getMessageListener()
javax.jms.MessageConsumer method setMessageListener()
javax.jms.Connection method setExceptionListener()
javax.jms.Connection method stop()
javax.jms.Connection method setClientID()
以上是“得到消息: J2EE 1.4 中的消息[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |