J2EE组件开发 - 消息驱动的EJB - 编程入门网
Connection接口的一种子类型,它代表着一个与JMS发布-订阅消息服务的连接。JMS客户程序调用TopicConnection.createTopicSession()方法创建Top icSession的实例。会话的事务支持和回执模式也在创建TopicSession时指定。
TopicSession.createTopic()方法返回一个Topic对象的实例。Topic接口封装了一个话题目的地,发布者向该目的地发送消息,订阅者从该目的地接收消息。不同的服务提供者按照不同的方式实现话题名称的层次结构,调用Topic.getTopicName()方法可以获得话题的String形式的描述。 TopicSession.createPublisher()方法创建一个TopicPublisher消息生产者,它用来把消息发布到Topic。消息可以通过各种不同的TopicPublisher.publish()方法发布到Topic,这些不同的publish()方法能够把消息发送给TopicPublisher对象关联的Topic对象,或者发送给publish()方法调用中指定的Topic对象。消息递送模式、优先级、消息的有效时间都可以在调用TopicPublisher.publish()方法时指定。发送给Topic的消息可以用Session接口中定义的各种消息构造方法创建。 五、实例 本示例应用是一个消息驱动Bean应用的简单例子,由以下两部分构成: SimpleMessageClient:J2EE应用客户程序,向队列发送消息。 SimpleMessageEJB:一个消息驱动的Bean,异步地接收和处理由客户程序发送到队列的消息。 客户端应用把消息发送到队列,队列由管理员通过j2eeadmin命令创建。JMS提供者(这里是J2EE服务器)把消息传递给消息驱动Bean的实例,由Bean的实例处理消息。 5.1 客户端 SimpleMessageClient把消息发送到SimpleMessageBean监听的队列。客户程序首先确定连接工厂和队列:
接下来,客户程序创建队列连接、会话和一个消息发送器:
J2EE组件开发 - 消息驱动的EJB(4)时间:2011-02-10最后,客户程序把几个消息发送到队列:
5.2 MDB组件 SimpleMessageEJB类阐明了编写消息驱动Bean类的要求: 实现MessageDrivenBean接口和MessageListener接口。 类定义为public类型。 类不能定义成abstract或final。 实现一个onMessage()方法。 实现一个ejbCreate()方法和一个ejbRemove()方法。 包含一个public类型的不需要参数的构造方法。 不能定义finalize()方法。 与会话Bean和实体Bean不同,消息驱动的Bean不定义客户程序访问的接口。客户程序不是先定位消息驱动的Bean,再调用这些Bean上的方法。虽然消息驱动的Bean没有业务方法,但它们可以包含由onMessasge()方法内部调用的辅助方法。 当队列接收到一个消息,EJB容器将调用消息驱动Bean的onMessage()方法。在SimpleMessageBean类中,onMessage()方法把接收到的消息定型(cast)成为TextMessage类型,然后显示出文本信息:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |