`
StartNowFly
  • 浏览: 625 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JMS编程模式

阅读更多
JMS编程模式
消息形式:
点对点为两个客户之间建立消息队列,使两个客户端之间通过队列实现点对点的消息传递
注:类似数据结构里的队列,先进先出
主题消息,在消息中间件上建立一个主题,没个客户端都可已向这个主题发送消息,接受消息

注:类似广播的方式

开发流程:




使用JMS步骤

1.创建一个JNDI上下文

Context  init initCtx =new InitialContext(env);

2.查找创建JMS连接使用的工厂类(Connnect Factory)

对于主题消息:

Object tmp=initCtx.lookup(“Connnect Factory”);

TopicConnectionFactory tcf=( TopicConnectionFactory) tmp;

对于点对点消息:

Object tmp=initCtx.lookup(“Connnect Factory”);

QueueConnectionFactory tcf=( QueueConnectionFactory) tmp;

3.查找JMS的目标对象(Destination)

对于主题消息:

Topic topic=(Topic)iniCtx.lookup(“topic/testTopic”);

对于点对点消息:

Queue queue (Queue)iniCtx.lookup(“queue /A”);

4.创建JMS连接(Connection)

对于主题消息:

TopicConnection conn=tcp.createTopicConnection();

对于点对点消息:

QueueConnection conn=tcp.createQueueConnection ();

5.创建JMS会话(session)

对于主题消息:

TopicSession session=conn.createTopicSession(fasle,Session.AUTO_ACKNOWLEDGE);

对于点对点消息:

QueueSession session= conn.createQueueSession(true,0);

6.创建消息的生产和消费者

生产者:

对于主题消息:

TopicPublisher publisher=session.createPublisher(topic);

对于点对点消息:

QueueSender sender = session.createSender (queue);

消费者:

对于主题消息:

TopicSubscriber subscriber=session.createSubscriber (topic);

对于点对点消息:

QueueReceiver receiver= session.createReceiver (queue);

7.注册消息的监听者

对于主题消息:

TextListener listener=new TextListener();

subscriber.setMessageListener(listener);

对于点对点消息:

TextListener listener=new TextListener();

receiver.setMessageListener(listener);

8.开始JMS的连接

   conn.start();

9.发送和接受消息

发送消息:

对于主题消息:

publisher.publish(message);

对于点对点消息:

sender.send(message);

接受消息:

对于主题消息:

Message msg= subscriber.receive();

对于点对点消息:

Message msg= receiver.receive(1000);

10.停止和关闭JMS连接

conn.stop();

session.close();

conn.close();

分享到:
评论

相关推荐

    深入浅出JMS-JMS介绍说明文档

    深入浅出JMS,主要介绍J2EE中的一个重要规范JMS,因为这个规范在企业中的应用十分的广泛,也比较重要,我们主要介绍JMS的基本概念和它的模式,消息的消费以及JMS编程步骤。

    WebLogic jms三个实例

    三个jms的实例,实现了jms的queue和topic,同时也实现了远程传送消息和本地传送消息,另外也分别实现了session的事务和非事务模式,有了这三个例子应该可以满足你的任何关于jms的需求了,由于上传限制,另外还需要...

    Spring3.X编程技术与应用,完整扫描版

    Spring的任务执行与调度、Spring Web应用的国际化支持、AJAX和Spring结合的访问模式、利用Spring发 送电子邮件、Spring JMS消息应用编程、教学资源全文检索设计、Java应用的报表打印、网络考试系统设 计、Spring应用...

    Java优化编程(第2版)

    9.1 jms消息收发模式及其各自适用场合 9.2 发送与接收jms消息 9.3 优化jms中的会话对象 9.4 优化连接对象 9.5 优化消息目的地destination及消息生产者与消费者 9.6 优化消息对象及合理使用事务机制 9.7 影响jms性能...

    Java数据编程指南

    J2EE通信 通信概述 JMS的详细情况 消息驱动EJB 小结 第24章 Java数据对象(JDO) 概述 JDO对象模型 JDO API JDO实例的生命周期 JDO和EJB 开发可持久类 范例应用程序 配置FFJ...

    h_JAVA 2应用编程150例.rar

    实例119 Request-Reply模式的JMS应用 421 实例120 使用Java IDL 426 实例121 EJB与CORBA的交互 430 实例122 基于EJB的真实世界模型 433 实例123 EJB的商业应用——定购单 447 第11章 Java 2 Platform Micro Edition...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    编程工具 eclipse myeclipse idea vi VS webstorm sublime text 版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 ...

    Java事务设计策略.

    编程式事务模式, 编程管理JTA事务 声明式事务模式, 以方法为单位,让容器使用配置信息来进行事务管理 最佳实践: 当为方法分配事务属性的时候,把类中对大部分方法最具限制性的属性作为类级别的默认属性, 然后再...

    disruptor-3.4.1

    disruptor-3.4.1,并发编程的利器,是一个高性能的一部处理框架,也可以认为是一个最快的消息处理框架(轻量级的JMS),还可以认为是一个观察者模式的实现,或者事件监听模式的实现。

    “桂林高新杯”软件设计大赛.doc

    编程语言 Java和C#由参赛选手任选一种。竞赛包含内容请参考以下范围。 "语言基础 "考核要点 "分值 "40 " "C# "1、C#工程管理; " " "2、C#.NET程序结构与数据类型、流程控制、方法的参数传递、程 " " "序调试与异常...

    ofbiz综合技术文档

    一、理解MVC模式 5 1、MVC理论描述 5 2、系统设计 6 3、OFBiz中MVC模式体现 7 二、JPublish合成表示层 8 1、经典的合成器--JPublish 8 2、template + script 9 3、JPublish和MVC 9 三、区块(Region)指南 9 1、简介...

    pinyougou:基于SOA架构一个综合性的B2B2C平台

    网站采用商家入驻的模式,商家入驻平台提交申请,有平台进行资质审核,审核通过后,商家拥有独立的管理后台录入商品信息。商品经过平台审核后即可发布。 品优购网上商城主要分为网站前台、运营商后台、商家管理后台...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...

    从Java走向Java+EE+.rar

    18.2 编程模型 268 18.2.1 管理对象 269 18.2.2 连接对象 270 18.2.3 会话 270 18.2.4 消息产生者 270 18.2.5 消息消费者 271 18.2.6 消息 272 18.2.7 异常处理 272 18.3 实例——利用JMS收发消息...

    非常苛刻的java工作要求

    1. 精通web jsp,servlet,、Tag、java bean,JMS,EJB,Jdbc开发,熟悉J2EE规范,熟悉各种常用设计模式,熟悉UML建模工具;掌握主流的Java开源框架Struts2、Spring、SpringMVC、Hibernate/Mybatis、iBatis等,最好熟悉...

    disruptor框架案例.rar

    Disruptor它是一个开源的并发框架能够在无锁的情况下实现...同时,Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。

    java应用软件程序设计

    Reply模式的JMS应用 421 实例120 使用Java IDL 426 实例121 EJB与CORBA的交互 430 实例122 基于EJB的真实世界模型 433 实例123 EJB的商业应用——定购单 447 第11章 Java 2 Platform Micro Edition...

    超级有影响力霸气的Java面试题大全文档

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

Global site tag (gtag.js) - Google Analytics