快速业务通道

Spring系列,第4部分: Spring JMS消息处理1-2-3 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
e102">     <ref bean="jmsQueueTemplate"/>    </property>    </bean>    <bean id="jmsReceiver"       class="springexample.client.JMSReceiver">    <property name="jmsTemplate102">      <ref bean="jmsQueueTemplate"/>     </property>    </bean>

Spring系列,第4部分: Spring JMS消息处理1-2-3(3)

时间:2011-02-09 IBM Naveen Balani

可以看到,我把 jmsQueueTemplate 绑定到用来发送和接收消息的 JmsSender 应用程序 bean 和 JmsReceiver bean。清单 5 显示了与 JMSSender 类有关的代码。

清单 5. 用 JmsTemplate 发送 JMS 消息的 JMSSender

public class JMSSender {   private JmsTemplate102 jmsTemplate102;   public JmsTemplate102 getJmsTemplate102() {    return jmsTemplate102;   }   public void setJmsTemplate102(JmsTemplate102 jmsTemplate102) {    this.jmsTemplate102 = jmsTemplate102;   }   public void sendMesage(){    jmsTemplate102.send("JMS_RequestResponseQueue",           new MessageCreator() {      public Message createMessage(Session session)           throws JMSException {       return session.createTextMessage("This is a sample message");      }     });   }

JMSSender 类用 jmsTemplate102.send() 方法发送 JMS 消息。send() 方法的第一个参数是 JNDI 队列名,队列名指定了消息应当发送到哪里。(很快就会看到如何把 WebSphere MQ 的队列名绑定到 JNDI。)send() 方法的第二个参数是 MessageCreator 类。JmsTemplate 中的调用代码提供了 Session 类,这个类提供了一个创建 JMS 消息的回调接口。

下一步是用 JMS 的 Session 类创建一个简单的文本消息。在代码执行时,消息会传递给 WebSphere MQ 服务器的队列。清单 6 显示了使用 JmsTemplate 检索 JMS 消息的 JMSReceiver 应用程序 bean 的代码。

清单 6. 用 JmsTemplate 检索 JMS 消息的 JMSReceiver

public class JMSReceiver {    private JmsTemplate102 jmsTemplate102;    public JmsTemplate102 getJmsTemplate102() {     return jmsTemplate102;    }    public void setJmsTemplate102(JmsTemplate102 jmsTemplate102) {    this.jmsTemplate102 = jmsTemplate102;    }    public void processMessage(){     Message msg = jmsTemplate102.receive("JMS_RequestResponseQueue");     try{      TextMessage textMessage = (TextMessage) msg;      if( msg!=null){      System.out.println(" Message Received -->" +            textMessage.getText());      }     }catch(Exception e){        e.printStackTrace();     }    } }

JMSReceiver 类用 jmsTemplate102.receive() 方法同步地接收 JMS 消息。receive() 方法指定 JNDI 队列名,并从中检索消息。JMSTemplate 类的 processMessage() 方法由接收 JMS 客户机调用。JSMTemplate bean 的属性 receiveTimeout(列在 JMSTemplate 配置中)指定接收客户机同步地从队列中接收消息时要等候的时间。

现在应用程序的代码已完成!下一步就是配置 WebSphere MQ 队列并把它们绑定到 JNDI 对象。

Spring系列,第4部分: Spring JMS消息处理1-2-3(4)

时间:2011-02-09 IBM Naveen Balani

队列管理器的设置

在运行

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号