互联网服务java

Java连接MQ,发送和读取

直接上代码: import java.io.IOException;    import com.ibm.mq.MQC;    import com.ibm.mq.MQEnvironment;    import com.ibm.mq.MQException;    import com.ibm.mq.MQMessage;    import com.ibm.mq.MQPutMessageOption...显示全部
直接上代码:
import java.io.IOException;   
import com.ibm.mq.MQC;   
import com.ibm.mq.MQEnvironment;   
import com.ibm.mq.MQException;   
import com.ibm.mq.MQMessage;   
import com.ibm.mq.MQPutMessageOptions;   
import com.ibm.mq.MQQueue;   
import com.ibm.mq.MQQueueManager;   
  
public class MQSender implements Runnable {   
    private static final String MQ_MANAGER = "QM2";   
    private static final String MQ_HOST_NAME = "10.0.16.15";   
    private static final String MQ_CHANNEL = "service2";   // "SYSTEM.DEF.SVRCONN";//
    private static final String MQ_QUEUE_NAME = "LQ1";   
    private static final int MQ_PROT = 1434;   
    private static final int MQ_CCSID = 1208;
  
    public void run() {   
        MQQueueManager mqQueueManager = null;   
        MQQueue mqQueue = null;
        try {   
            MQEnvironment.addConnectionPoolToken();   
            MQEnvironment.hostname = MQ_HOST_NAME;   
            MQEnvironment.channel = MQ_CHANNEL ;  
            MQEnvironment.port = MQ_PROT;   
            MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);   
            MQEnvironment.CCSID = MQ_CCSID;   
            int sendOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;   
            mqQueueManager = new MQQueueManager(MQ_MANAGER);   
            mqQueue = mqQueueManager.accessQueue(MQ_QUEUE_NAME, sendOptions, null, null, null);   
            MQPutMessageOptions mqPutMessageOptions = new MQPutMessageOptions();   
            MQMessage mqMessage = null;   
            String putMessage = "你好啊"; 
            mqMessage = new MQMessage();   
            mqMessage.format = MQC.MQFMT_STRING;   
//            mqMessage.write(putMessage.getBytes()); 
            mqMessage.writeUTF(putMessage);
            mqQueue.put(mqMessage, mqPutMessageOptions); 
        } catch (MQException e) {   
            e.printStackTrace();   
        } catch (IOException e1) {   
            e1.printStackTrace();   
        } finally {   
            if (mqQueue != null) {   
                try {   
                    mqQueue.close();   
                } catch (MQException e) {   
                    e.printStackTrace();   
                }   
            }   
            if (mqQueueManager != null) {   
                try {   
                    mqQueueManager.close();   
                } catch (MQException e) {   
                    e.printStackTrace();   
                }   
            }   
        }   
    } 

    public static void main(String arg[]) {   
        MQSender client = new MQSender();   
        Thread mqClientThread = new Thread(client);   
        mqClientThread.start();   
    }   
}
收起
参与31

查看其它 20 个回答wenzi5a321的回答

wenzi5a321wenzi5a321软件架构设计师上海派拉软件
通过监听接收:
package com.sany.demo;
import com.ibm.jms.JMSTextMessage;
import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQQueueConnectionFactory;

import javax.jms.*;
import java.net.URI;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Receiver implements MessageListener {
//    private static Logger logger = Logger.getLogger(Receiver.class.getName());
        private static final String MQ_MANAGER = "QM2";
        private static final String MQ_HOST_NAME = "10.0.16.15";
        private static final String MQ_CHANNEL = "service2"; // "SYSTEM.DEF.SVRCONN";//
        private static final String MQ_QUEUE_NAME = "LQ1";
        private static final int MQ_PROT = 1434;
        private static final int MQ_CCSID = 1208;

    public static void main(String[] args) {
        try {
            MQQueueConnectionFactory rv = new MQQueueConnectionFactory();
            rv.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
            rv.setHostName(MQ_HOST_NAME);
            rv.setQueueManager(MQ_MANAGER);
            rv.setChannel(MQ_CHANNEL);
            rv.setPort(MQ_PROT);
            QueueConnection conn  = rv.createQueueConnection("wbiadmin","wbiadmin");;
            QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
            Queue queue = session.createQueue(MQ_QUEUE_NAME);
            QueueReceiver receiver = session.createReceiver(queue);
            Receiver instance = new Receiver();
            receiver.setMessageListener(instance);
            conn.start();
            int count = 0;
            while (count < 1000) {
                Thread.sleep(30 * 1000);
                count++;
            }
            //shutdown
            receiver.close();
            session.close();
            conn.close();
        } catch (Exception e) {
//            logger.log(Level.WARNING, "Exception: ", e);
                e.printStackTrace();
        }
    }

    @Override
    public void onMessage(Message message) {
        if (message == null)
            return;
        if (message instanceof JMSTextMessage) {
            try {
                System.out.println(((JMSTextMessage) message).getText());
            } catch (JMSException e) {
                e.printStackTrace();
            }
        } else {
            //you need defined handle for different message format.
        }
    }
}
互联网服务 · 2012-05-11
  • 请问,我在Eclipse中运行你的MQsender的那个程序,为什么出现这样的错误呢:Exception in thread "Thread-0" java.lang.NoClassDefFoundError: javax/resource/ResourceException at com.ibm.mq.MQEnvironment.(MQEnvironment.java:490) at MyMQ.MQSender.run(MQSender.java:23) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.resource.ResourceException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 3 more
    2016-07-28

回答者

wenzi5a321
软件架构设计师上海派拉软件
擅长领域: 中间件esb软件开发

wenzi5a321 最近回答过的问题

回答状态

  • 发布时间:2012-05-11
  • 关注会员:1 人
  • 回答浏览:906
  • X社区推广