10.消息驱动Bean.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消息 消息是软件组件或应用之间的一种通信方法。 消息系统是一种对等(peer-to-peer)的系 统:消息客户可以向其他客户发送消息,也 可以接收来自其他客户的消息。每一个客户 和一个消息代理相连,由消息代理提供创建、 发送、接收、读取消息的服务。 使用消息的动机 异步 -通常工作在阻塞状态 松耦合 –客户同服务器的耦合 可靠性 –网络中断等问题 支持多个发送者和接收者 –广播 Message-Oriented-Middleware Java Message Service是一个Java API,定义客户程序与底层消息服务的接口。 MDB是以EJB形式实现JMS消息的接受者。 会话Bean和实体Bean能够发送JMS消息,但不能异步接收。 JMS 消息域 -消息的处理类型 发布/订阅 点对多 注册者注册到一定的Topic,发布者将消息分发到订阅者 点对点 通过消息队列实现 步骤 SAS中建资源 | JMS资源 | 连接工厂目的地资源 定位JMS提供者ConnectionFactory,通过JNDI查找。找到消息中间件的JMS提供者。 创建JMS连接。类似于JDBC连接。 创建JMS Session。用于发送、接收消息的对象。 定位JMS目的地。Queue或Topic。 创建生产者和消费者。 发送或接收消息。 上述同时适用于发布/订阅和点对点域。 J2SE的实现 TopicProducer.java TopicConsumer.java session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); False不使用事务 AUTO_ACKNOWLEDGE如何确认接收到的消息 @MessageDriven(mappedName = jms/Queue) public class SimpleMessageBean implements MessageListener { static final Logger logger = Logger.getLogger(SimpleMessageBean); @Resource private MessageDrivenContext mdc; public SimpleMessageBean() { } public void onMessage(Message inMessage) { TextMessage msg = null; try { if (inMessage instanceof TextMessage) { msg = (TextMessage) inMessage; logger.info(MESSAGE BEAN: Message received: + msg.getText()); } else { logger.warning(Message of wrong type: + inMessage.getClass().getName()); } } catch (JMSException e) {} } } MDB 不能使用OO风格的远程方法进行访问MDB,而是由容器调用。不存在远程或本地业务接口。 MDB只是从目的地接收消息。onMessage()接口回调。JMS消息类型有BytesMessage,ObjectMessage,TextMessage,StreamMessage,MapMessage。 @MessageDriven(mappedName = jms/Queue) 确定这是一个MDB组件 MessageListener接口 public interface javax.jms.MessageListener{ public void onMessage(Message m); } MDB特征 收到单个客户端的消息时执行。 不同步调用 生命周期短暂 可以识别事务 无状态 * * 消息驱动Bean应用 public class SimpleMessageClient { 一 @Resource(mappedName = jms/ConnectionFactory) private static ConnectionFactory connectionFactory; 四 @Resource(mappe

文档评论(0)

df829393 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档