




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flex3.5整合ActiveMQ1.Java的JMS(略);请参看Java Message Service文档;2.Flex生产者、消费者;使用Flex类 Producer生产者,Consumer消费者Producer 是消息的发送端Consumer 是消息的接收端3.Flex消息机制基本等同于JMS4.ActiveMQ及订阅消息模式ActiveMQ发送端:首先需要建立一个连接工厂(使用工厂模式)ConnectionFactory connectionFactory;/需要连接工厂建立客户端到JmsProvider的连接Connection connection = null;/客户端到JmsProvider的连接开启发送或接收消息的线程Session session ;/一个发送或接收信息的线程将消息放入目的队列中Queue queue;/Destination消息目的地建立一个回复的目的队列;Queue replyQueue;/恢复的目的地建立消息发送者(生产者)MessageProducer producer;/消息发送者建立消息回复者(消费者)MessageConsumer replyer;创建ActiveMQ连接工厂connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,tcp:/30:61616);/MQ端口61616 使用TCP模式连接获取连接并启动connection = connectionFactory.createConnection();/连接工厂得到连接connection.start();/启动从连接中获取发送或接收消息的会话Sessionsession = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);创建消息队列,可在http:/locathost:8161/admin/queue.jsp查看queue = new ActiveMQQueue(jason.queue2);replyQueue = new ActiveMQQueue(jason.replyQueue);创建消息发送者(生产者)producer = session.createProducer(queue);/得到消息生成者(发送者) 需要session和Destination来创建创建发送消息的类型TextMessage message = session.createTextMessage(jason学习Active 发送消息!);/ObjectMessage消息中设置回复的队列,发送一个non-persistent消息producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);producer.send(message);创建回复目的队列,定义回复接收者(消费者),并设置监听replyer = session.createConsumer(replyQueue);replyer.setMessageListener(new MessageListener()Overridepublic void onMessage(Message message) / TODO Auto-generated method stubtryTextMessage txtmess = (TextMessage) message;System.out.println(consumer回复 :+txtmess.getText();catch(Exception e);记得提交会话mit();最后关闭连接connection.close();接收端实现MsessionListenerpublic class QueueConsumer implements MessageListener实现onMessage方法Overridepublic void onMessage(Message message) / TODO Auto-generated method stubtry if(message instanceof TextMessage)TextMessage txtmess = (TextMessage) message;System.out.println(收到的是:+txtmess.getText();elseSystem.out.println(shoudaode shi +message); catch (Exception e) / TODO: handle exception与发送端一样, 需要建立创建连接工厂,获取连接,得到会话Session,并建立消费者,该消费者指向发送的目的队列Queue,并且设置成消息监听private void consumeMessage() / TODO Auto-generated method stubConnectionFactory connectionFactory;Connection connection = null;Session session;Queue queue;MessageConsumer consumer;connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,tcp:/30:61616);try connection = connectionFactory.createConnection();connection.start();session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);queue = new ActiveMQQueue(jason.queue2);consumer = session.createConsumer(queue);consumer.setMessageListener(this); catch (Exception e) / TODO: handle exceptionfinallytry if(null!=connection)connection.close(); catch (Exception e) / TODO: handle exception利用轮询方式获取消息QueueConsumer re = new QueueConsumer();while(true)re.consumeMessage();tryThread.sleep(100);catch(InterruptedException e)e.printStackTrace();代码示例FlexMQ工程消息订阅模式即接收端向发送端(客户端服务器端)进行了订阅或者说注册,当服务端有发送的消息时,则对整个指向该消息队列的客户端发送消息,若该客户端离线也将保存,直到该客户端再次连线接收到该消息为止。(参阅ACTIVEMQ消息订阅模式)5.Flex与Active整合1)JNDI参看Java JNDI2)context.xml配置文件在项目WebRoot/META-INF/下创建一个context.xml,用来对使用到的ActiveMQ类进行命名3)配置web.xml文件配置Web.xml来引用context.xml的资源 FlexMQApp4 BlazeDS Applicationflex.class.path/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars flex.messaging.HttpFlexSession MessageBrokerServlet MessageBrokerServlet flex.messaging.MessageBrokerServlet services.configuration.file /WEB-INF/flex/services-config.xml 1 !- begin rds RDSDispatchServletRDSDispatchServlet flex.rds.server.servlet.FrontEndServletuseAppserverSecuritytrue 10 RDSDispatchServlet /CFIDE/main/ide.cfm end rds - MessageBrokerServlet /messagebroker/* index.html index.htm !- Flex Messaging WorkManager wm/MessagingWorkManager com.ibm.websphere.asynchbeans.WorkManager Container Shareable -jms/ConnectionFactoryorg.apache.activemq.ActiveMQConnectionFactoryContainerjms/topic/MyTmand.ActiveMQTopicContainer此处必须要引用,否则会报JNDI异常4)message-config.xml配置文件 Topicjavax.jms.ObjectMessagejava:comp/env/jms/ConnectionFactoryjava:comp/env/jms/topic/MyTopicNON_PERSISTENTDEFAULT_PRIORITYAUTO_ACKNOWLEDGEContext.INITIAL_CONTEXT_FACTORYorg.apache.activemq.jndi.ActiveMQInitialContextFactoryContext.PROVIDER_URLtcp:/30:61616a.打开Flex 的JMSb.创建message的destinationc.设置jms 属性订阅模式 对象消息类型JNDI引用 context.xml中的命名delivery-mode non-persiste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年私募基金行业当前竞争格局与未来发展趋势分析报告
- 2025年汽车产业园行业当前市场规模及未来五到十年发展趋势报告
- 收入科目课件
- 2025年住院医师规范化培训院级师资考核试题(含答案)
- 2025年矿产权评估师重点试题带答案
- 2024年事业单位考试内江市东兴区《公共基础知识》全真模拟试题含解析
- 播放课件不显示页数问题
- 2025年施工员之装修施工基础知识考试题库附完整答案(必刷)
- 2025年公务员考试公共基础知识模拟试题及答案
- 摸鱼研学课件
- 眩晕综合症的护理
- 2025年江苏省苏豪控股集团有限公司人员招聘笔试备考试题及一套答案详解
- 2025健康体检服务规范
- 税务政策培训课件
- 循环水培训课件
- 大型丧事活动方案
- 2025秋人教版(2024)八年级上册地理 【教学课件】1.1.1 《疆域》
- 阿尔茨海默氏症典型病例解析
- 2025年中小学心理健康教育教师考试试题及答案
- 教师写作培训课件
- 中国无人机智能巡检系统行业市场前景预测及投资价值评估分析报告
评论
0/150
提交评论