J2EE组件开发 消息驱动的EJB

豆豆网   技术应用频道   2007年10月29日  【字号: 收藏本文

内容摘要:Java消息服务(Java Message Service,JMS)是一个Java API,它定义了消息的客户程序如何以一种标准化的形式与底层的消息服务提供者交互。JMS提供了一种接口,底层消息服务提供者通过该接口向客户程序提供JMS消息服务。

  这些派生消息类型上的方法为特定类型的消息正文定义了get和set操作,而在Message基础接口内,有一个通用的clearBody()方法,这个方法清除消息的正文,并把它置入只写模式。clearBody()方法只清除消息正文,不清除消息头或属性。如果消息正文是只读的,调用该消息后,消息正文的状态将和新消息的空白正文状态一样。

  2.3 MDB客户程序接口

  消息驱动Bean的客户程序并不知道接收端实际处理消息的将是一个EJB。事实上,消息驱动Bean的客户程序的构造方法与普通JMS客户程序的构造方法完全一样。

  JMS的核心体系如图四所示。从图中我们可以看出,JMS ConnectionFactory(连接工厂)初始上下文通过Java名称和目录接口(Java Naming and Directory Interface,JNDI)创建。随后,连接工厂将用来创建与JMS服务提供者的连接。有了JMS连接,我们就可以获得创建消息生产者和消息消费者的会话(Session)。实际上,消息驱动Bean的客户程序就是消息的生产者,它发送的消息将由消息驱动的Bean(即消息消费者)接收。

  三、点对点消息队列模式

  在一个支持点对点消息队列的系统中JMS的基本体系结构。消息队列体系实际上是核心JMS体系的一个扩展,特别地,它加入了对消息队列功能的支持。连接工厂、连接、会话、消息生产者、消息消费者等都用点对点消息队列形式的接口进行了扩展。

  JMS客户程序利用JNDI获得一个QueueConnectionFactory对象的引用。随后,我们用QueueConnectionFactory.createQueueConnection()方法之一创建一个QueueConnection对象的实例。调用createQueueConnection()方法时可以指定一个用户名字和密码,或者,我们也可以使用该方法不带参数的版本,此时假定使用默认用户身份。

责编:豆豆技术应用

正在加载评论...