读书人

与IBM MQ收发消息事例

发布时间: 2012-09-06 10:37:01 作者: rapoo

与IBM MQ收发消息例子
用Websphere MQ自带的工具包通过与Spring整合向Websphere MQ发消息,并通过listener接收消息的例子

首先第一步就是配置一个websphere MQ,这个就不多说了,不会的就去找技术文章看看
然后是spring的配置文件:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//Spring//DTD Bean//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><!-- Application Context --><beans><bean id="jmsConnectionFactory"/><property name="baseQueueManagerName"><value>***</value></property><property name="baseQueueName"><value>***</value></property></bean><!-- MQ receiver queue setup --><bean id="receiverQueue" /><property name="baseQueueManagerName"><value>***</value></property><property name="baseQueueName"><value>***</value></property></bean><!-- the JMSTemplate102 setup for Sender Queue--><bean id="SenderJMSTemplate"/></property><property name="pubSubDomain"><value>false</value></property><property name="defaultDestination"><ref bean="senderQueue" /></property></bean><!-- the JMSTemplate102 setup for Receiver Queue --><bean id="ReceiverJMSTemplate"/></property><property name="pubSubDomain"><value>false</value></property><property name="defaultDestination"><ref bean="receiverQueue" /></property></bean><bean id="jmsSender" ref="SenderJMSTemplate" /><property name="replyTo" ref="senderQueue" /><property name="msgheader"><props><prop key="EVENTNAME">****</prop><prop key="WIRECENTER">***</prop><prop key="DESTINATION">***</prop><prop key="embusMessagingMode">***</prop><prop key="CLIENTID">***</prop><prop key="USERID">***</prop><prop key="GROUPID">***</prop><prop key="embusApplicationID">***</prop><prop key="embusLoggingKey">***</prop><prop key="USERID">***</prop><!-- below is for message selector --><prop key="messageSelector">***</prop></props></property></bean><bean id="jmsReceiver" /></property><property name="receiveQueue"><ref bean="receiverQueue" /></property></bean><beanref="jmsConnectionFactory" /><property name="destination" ref="receiverQueue" /><property name="messageListener" ref="jmsReceiver" /><property name="concurrentConsumers" value="1" /> <property name="messageSelector" value="messageSelector = '***'" /></bean></beans>


然后是发消息的JMSSender.java
/* * Created on Feb 3, 2012 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates *//** * @author xiaozurun *  * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */package springexample.client;import java.util.Iterator;import java.util.Properties;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.Session;import org.springframework.jms.core.JmsTemplate102;import org.springframework.jms.core.MessageCreator;public class JMSSender {private JmsTemplate102 jmsTemplate102;private Properties msgheader;private Destination replyTo;public JmsTemplate102 getJmsTemplate102() {return jmsTemplate102;}public void setJmsTemplate102(JmsTemplate102 jmsTemplate102) {this.jmsTemplate102 = jmsTemplate102;}/** * @return Returns the msgheader. */public Properties getMsgheader() {return msgheader;}/** * @param msgheader The msgheader to set. */public void setMsgheader(Properties msgheader) {this.msgheader = msgheader;}/** * @return Returns the replyTo. */public Destination getReplyTo() {return replyTo;}/** * @param replyTo The replyTo to set. */public void setReplyTo(Destination replyTo) {this.replyTo = replyTo;}public void sendMesage() {//System.out.println(sendQueue.getBaseQueueName());jmsTemplate102.send(replyTo, new MessageCreator() {public Message createMessage(Session session) throws JMSException {String strInput = "";try {strInput = util.getString("facs.xml");System.out.println("send message: " + strInput);} catch (Exception e) {}Message message = session.createTextMessage(strInput);Iterator it = msgheader.keySet().iterator();System.out.println("Print message header property:");while (it.hasNext()) {String key = (String) it.next();message.setStringProperty(key, msgheader.getProperty(key));System.out.print("(" + key + " : "+ msgheader.getProperty(key) + ")\t");}message.setStringProperty("TAFIFlag", "1234567890");message.setJMSReplyTo(replyTo);return message;}});}}


未完。。。 1 楼 Jophy 2012-04-02 楼主 期待后面的 感谢!

读书人网 >编程

热点推荐