Flex3与ActiveMQ整合.doc_第1页
Flex3与ActiveMQ整合.doc_第2页
Flex3与ActiveMQ整合.doc_第3页
Flex3与ActiveMQ整合.doc_第4页
Flex3与ActiveMQ整合.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论