JavaEE第11次.docVIP

  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文档。上传文档
查看更多
JavaEE第11次

实验名称 演示EJB的消息驱动bean示例 实验目的 开发消息驱动bean的相关概念 消息的传递模型 Queue类型消息开发步骤 实验目的 1.开发消息驱动bean的相关概念 2.消息的传递模型 3.Queue类型消息开发步骤 实验内容及结果(请将相应题目代码和结果截图写在相应题目下方) 开发消息驱动bean的相关概念 (1).java消息驱动bean属于Java消息服务(Java Message Service,简称JMS)。 JMS是用于访问企业消息系统的开发商中心的API。企业消息系统可以协助应用软件通过网络进行消息交互。 JMS的编程过程简单概括为:应用程序A--(消息)--Jboss JMS--(消息)--应用程序B。应用程序A和应用程序B没有直接的代码关联,两者实现了解耦。消息传递系统的中心就是消息。 消息驱动Bean(MDB)是设计用来专门处理基于消息请求的组件,它和无状态Session Bean一样也使用了实例池技术,容器可以使用一定数量的bean实例并发处理成百上千个JMS消息。正因为MDB具有处理大量并发消息的能力,所以非常适合应用在一些消息网关产品。如果一个业务执行的时间很长,而执行结果无需实时向用户反馈时,也很适合使用MDB。如订单成功后给用户发送一封电子邮件或发送一条短信等。 消息有下面几种类型,他们都是派生自Message接口。 StreamMessage:一种主体中包含Java基本值流的消息。其填充和读取均按顺序进行。 MapMessage:一种主体中包含一组名-值对的消息。(没有定义条目顺序) TextMessage:一种主体中包含Java字符串的消息(例如:XML消息) ObjectMessage:一种主体中包含序列化Java对象的消息。 BytesMessage:一种主体中包含连续字节流的消息。 消息的传递模型: JMS支持两种消息传递模型:点对点(point-to-point,简称PTP)和发布/订阅(publish/subscribe,简称pub/sub)。 二者有以下区别: 1.PTP 消息传递模型规定了一条消息只能传递给一个接收方。采用javax.jms.Queue表示。 2.Pub/sub 消息传递模型允许一条消息传递给多个接收方。采用javax.jms.Topic表示。 注意:每种模型都通过扩展公用基类来实现。例如,javax.jms.Queue 和javax.jms.Topic都扩展自javax.jms.Destination 类。 Xml代码: java 中发送消息的概括.得到一个JNDI初始化上下文(Context) InitialContext ctx = new InitialContext(); .根据上下文查找一个连接工厂ConnectionFactory,改连接工厂是由JMS提供的,不需我们自己创建,每个厂商都为它绑定了一个全局JNDI,我们通过它的全局JNDI便获取它; QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup(ConnectionFactory); .从连接工厂得到一个连接QueueConnection。 QueueConnection conn = factory.createQueueConnection(); .通过连接来建立一个会话(Session); QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); 这句代码意思是:建立不需要事务的并且能自动确立消息已接收的会话。 .查找目标地址: Destination destination=(Destination)ctx.lookup(queue/ztfQueue); .根据会话以及目标地址来建立消息生产者MessageProducer(QueueSender和TopicPublisher都扩展自MessageProducer接口): MessageProducer producer = session.createProducer(destination); TextMessage msg = session.createTextMessage(您好:胡晓亮,这是我的第一个消息驱动Bean); producer.send(msg); 3.建立一个java项目,把jboss的client目录下的jar包全部buildPath到编译路径中 4.写消息的发送端 5.写消息的接收端 采用MessageDrivenBean接收消息。 当容器检测到bean守候的目标地址有消息到达时,容器调用onMess

文档评论(0)

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

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

1亿VIP精品文档

相关文档