J2EE组件开发 - 消息驱动的EJB - 编程入门网
对象由ObjectMessage封装,String消息由TextMessage封装,键-值对由MapMessage封装,I/O流由StreamMessage封装。
这些派生消息类型上的方法为特定类型的消息正文定义了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(即消息消费者)接收。 J2EE组件开发 - 消息驱动的EJB(3)时间:2011-02-10三、点对点消息队列模式 在一个支持点对点消息队列的系统中JMS的基本体系结构。消息队列体系实际上是核心JMS体系的一个扩展,特别地,它加入了对消息队列功能的支持。连接工厂、连接、会话、消息生产者、消息消费者等都用点对点消息队列形式的接口进行了扩展。 JMS客户程序利用JNDI获得一个QueueConnectionFactory对象的引用。随后,我们用QueueConnectionFactory.createQueueConnection()方法之一创建一个QueueConnection对象的实例。调用createQueueConnection()方法时可以指定一个用户名字和密码,或者,我们也可以使用该方法不带参数的版本,此时假定使用默认用户身份。 QueueConnection接口是Connection接口的一种子类型,它代表着一个与JMS点对点消息队列服务的连接。JMS客户程序调用createQueueSession()方法创建QueueSession的实例,createQueueSession()方法调用中一个boolean类型的参数指定了QueueSession对象是否要提供事务支持。另外,回执的模式也在createQueueSession()调用中通过参数指定,这个参数的值可以是三个静态的标识符之一:AUTO_ACKNOWLEDGE,CLIENT_ACKNOWLED GE,DUPS_OK_ACKNOWLEDGE。 QueueSession.createQueue()方法返回一个Queue对象的实例,调用Queue.getQueueName()方法可以返回队列的名字。 QueueSession.createSender()方法创建一个QueueSender消息生产者,利用QueueSender可以把消息发送到Queue。消息可以通过各种不同的QueueSender.send()方法发送到Queue,这些不同的send()方法能够把消息发送给QueueSender对象关联的Queue对象,或者发送给send()方法调用中指定的Queue对象。消息递送模式、优先级、消息的有效时间都可以在调用QueueSender.send()方法时指定。 发送给Queue的消息可以用Session接口中定义的各种消息构造方法创建。 四、发布-订阅消息模式 在一个支持发布-订阅消息模式的系统中JMS的基本体系结构。发布-订阅消息机制也是核心JMS机制的一种扩展,增加了一些适合发布-订阅消息模式的功能。连接工厂、连接、会话、消息生产者、消息消费者等都用发布-订阅形式的接口进行了扩展。 JMS客户程序通过JNDI获得一个TopicConnectionFactory对象的引用。TopicConnectionFactory.createTopicConnection()方法用来创建TopicConnection对象的实例。调用createTopicConnection()方法时可以指定一个用户名字和密码,或者,我们也可以使用该方法不带参数的版本,此时假定使用默认用户身份。 TopicConnection接口是 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |