IBM MQ 与spring的整合

文件名:applicationContext-biz-mq.xml

 新浪博客把里面的代码全部转换成HTML了,所以无法粘贴

 可以查看CSDN里面的:http://blog.csdn.net/xiazou/article/details/19559247

mqconnect.properties配置文件:

 #通道名
app.mq.channel=SYSTEM.DEF.SVRCONN
#传输类型
app.mq.transportType=1
#端口号
app.mq.port=1414
#队列管理器名称-发送方
queue.manager.send=WMQ1QM
#主机地址-发送方
queue.manager.host.send=10.70.175.81
#队列名称-发送方
queue.name.send=WMQ1OutputQ

#队列管理器名称--接收方
queue.manager.get=WMQ2QM
#主机地址--接收方
queue.manager.host.get=10.70.175.82
#队列名称--接收方
queue.name.get=WMQ2InputQ

MessageTest.java测试文件,用来启动接收监听的配置文件:

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MessageTest {

 
 public static void main(String[] args) {
  new ClassPathXmlApplicationContext("classpath*:/applicationContext-biz-mq.xml");

 }

}

MessageListener.java监听文件:

 import com.zmcc.servicemanager.biz.CallRecordBiz;
import com.zmcc.servicemanager.domain.CallRecord;


public class MessageListener{

 private CallRecordBiz callRecordBiz;
 
 
 public void receviedMessage(CallRecord callRecord) {
  System.out.println(callRecord.getRequestContent());
 }

 public CallRecordBiz getCallRecordBiz() {
  return callRecordBiz;
 }

 public void setCallRecordBiz(CallRecordBiz callRecordBiz) {
  this.callRecordBiz = callRecordBiz;
 }
 
}

MessageConverter.java用来转换的类:

 import java.util.Date;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.springframework.jms.support.converter.MessageConversionException;

import com.zmcc.servicemanager.domain.CallRecord;


public class MessageConverter implements org.springframework.jms.support.converter.MessageConverter {

 
 public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException {
  return null;
 }

 
 public Object fromMessage(Message message) throws JMSException,MessageConversionException {
  // TODO
  TextMessage mapMessage = (TextMessage) message;
  CallRecord callRecord = new CallRecord();
  callRecord.setEndTime(new Date());
  callRecord.setRequestContent(mapMessage.getText());
  
  return callRecord;
 }

}

CallRecord.java实体类

 public class CallRecord implements Serializable{
 
   
 private static final long serialVersionUID = 1L;

 private String requestContent;

 private Date endTime;

……

}

 JmsProducer.java发送消息:

 import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQQueueConnectionFactory;


public class JmsProducer {

 
 public static void main(String[] args) {

  // Variables
  Connection connection = null;
  Session session = null;
  Destination destination = null;
  MessageProducer producer = null;

  try {
   // Create a connection factory
   // objects
   MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
   factory.setQueueManager("WMQ1QM");
   factory.setHostName("10.70.175.81");
   factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
   factory.setPort(1414);
   factory.setChannel("SYSTEM.DEF.SVRCONN");

   // Create JMS objects
   connection = factory.createConnection();
   session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
   destination = session.createQueue("WMQ1OutputQ");
   producer = session.createProducer(destination);

   long uniqueNumber = System.currentTimeMillis() % 1000;
   TextMessage message = session
     .createTextMessage("JmsProducer: Your lucky number today is " + uniqueNumber);

   // Start the connection
   connection.start();

   // And, send the message
   producer.send(message);
   System.out.println("Sent message: " + message);

  } catch (JMSException jmsex) {
   jmsex.fillInStackTrace();
  } finally {
   try {
    producer.close();
    session.close();
    connection.close();
   } catch (JMSException e) {
    e.printStackTrace();
   }
  }
 }

}

原文地址:https://www.cnblogs.com/yanduanduan/p/7156483.html