MQ發送消息到隊列的Java代碼

hwl0420 8年前發布 | 4K 次閱讀 Java

MQ發送消息到隊列
</div>

 

MsgSend.java        

package com.mq.dpca.msg;

import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;

import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.msg.client.wmq.WMQConstants;

/**
 * MQ字符串發送功能
 * 
 */
public class MsgSend {

    MQQueueConnectionFactory mcf;
    QueueConnection qconn;
    MQConfig mc = null;

    /**
     * 初始化連接
     * 
     * @throws JMSException
     */
    public void openConnection() throws JMSException {
        mc = MQConfig.getInstance();
        mcf = new MQQueueConnectionFactory();
        mcf.setConnectionNameList(mc.getMQ_HOST_NAME());
        // mcf.setHostName(mc.getMQ_HOST_NAME());
        mcf.setChannel(mc.getMQ_CHANNEL());
        mcf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
        mcf.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
        // mcf.setPort(Integer.parseInt(mc.getMQ_PROT()));
        mcf.setCCSID(Integer.parseInt(mc.getMQ_CCSID()));
        mcf.setQueueManager(mc.getMQ_MANAGER());
        qconn = mcf.createQueueConnection();
    }

    /**
     * 發送消息
     * 
     * @param key
     * @param msgInfo
     * @throws JMSException
     * @throws InterruptedException
     */
    public void send(String key, String msgInfo) {
        QueueSession session = null;
        QueueSender sender = null;
        try {
            openConnection();
            session = qconn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
            Queue queue = session.createQueue(mc.getMQ_QUEUE_NAME());
            sender = session.createSender(queue);
            TextMessage msg = session.createTextMessage();
            msg.setText(msgInfo);
            // msg.setStringProperty("Key", key);
            sender.send(msg);

        } catch (JMSException e) {
            e.printStackTrace();
        } finally {
            try {
                sender.close();
                session.close();
                qconn.close();
            } catch (JMSException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 程序的入口
     * @param args
     * @throws JMSException
     * @throws InterruptedException
     */

    public static void main(String[] args) throws JMSException,
            InterruptedException {
        MsgSend ms = new MsgSend();
        String str = "<root><esbHeader><requestId>d5d001f47d46e1471ae42ebf1dded7a2</requestId><serviceName>syncCustmoerInfo</serviceName>"
                + "<key>3DOxe6EfkvcAAAFH95SjNwAAAAAAAAAD</key></esbHeader><serviceNameReq><security><key>f7b17a6ffcd5561748c5bb98075aa432</key><date>2013-04-10 15:25:00</date></security>"
                + "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
                + "</customer>"
                + "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
                + "</customer>"
                + "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
                + "</customer>" + "</serviceNameReq>" + "</root>";
        ms.send("", str);
        // Thread.sleep(10000);
        System.out.print("消息發送完畢!");
    }
}

MQConfig.java ~ 6KB         

package com.mq.dpca.msg;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

import com.mq.dpca.util.RenameUtil;

/**
 * MQ訪問配置文件各參數的獲取
 * 
 */
public class MQConfig {
    // MQ配置及server配置文件路徑
    private static final String ACTIONPATH = "config.properties";
    private static MQConfig instance = null;

    private String MQ_MANAGER = null;
    private String MQ_HOST_NAME = null;
    private String MQ_CHANNEL = null;
    private String MQ_QUEUE_NAME = null;
    private String MQ_PROT = null;
    private String MQ_CCSID = null;
    private String MQ_QUEUE_SUB = null;
    private String FILE_DIR = null;

    public String getFILE_DIR() {
        return FILE_DIR;
    }

    public void setFILE_DIR(String fILE_DIR) {
        FILE_DIR = fILE_DIR;
    }

    public String getMQ_MANAGER() {
        return MQ_MANAGER;
    }

    public void setMQ_MANAGER(String mq_manager) {
        MQ_MANAGER = mq_manager;
    }

    public String getMQ_HOST_NAME() {
        return MQ_HOST_NAME;
    }

    public void setMQ_HOST_NAME(String mq_host_name) {
        MQ_HOST_NAME = mq_host_name;
    }

    public String getMQ_CHANNEL() {
        return MQ_CHANNEL;
    }

    public void setMQ_CHANNEL(String mq_channel) {
        MQ_CHANNEL = mq_channel;
    }

    public String getMQ_QUEUE_NAME() {
        return MQ_QUEUE_NAME;
    }

    public void setMQ_QUEUE_NAME(String mq_queue_name) {
        MQ_QUEUE_NAME = mq_queue_name;
    }

    public String getMQ_PROT() {
        return MQ_PROT;
    }

    public void setMQ_PROT(String mq_prot) {
        MQ_PROT = mq_prot;
    }

    public String getMQ_CCSID() {
        return MQ_CCSID;
    }

    public void setMQ_CCSID(String mq_ccsid) {
        MQ_CCSID = mq_ccsid;
    }

    public static MQConfig getInstance() {
        if (instance == null) {
            instance = new MQConfig().getNewDbConfig();
        }
        return instance;
    }

    public static ResourceBundle getCFG(){
        String cfgPath = "";
        InputStream in = null;
        ResourceBundle pathCfg = null;
        ResourceBundle mqCfg = null;
        pathCfg = PropertyResourceBundle.getBundle("config");
        cfgPath = RenameUtil.getParameter(pathCfg, "mqcfgPath");
        try {
            in = new BufferedInputStream(new FileInputStream(cfgPath));
            mqCfg = new PropertyResourceBundle(in);
            return mqCfg;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
        return mqCfg;
    }

    public static MQConfig getNewDbConfig() {

        MQConfig dc = new MQConfig();
        Properties prop = new Properties();
        String path = null;
        InputStream fis = null;

        try {
            fis = MQConfig.class.getClassLoader().getResourceAsStream(
                    "config.properties");
            // fis = new FileInputStream(new File(path + ACTIONPATH));
            prop.load(fis);
            dc.MQ_CCSID = prop.getProperty("MQ_CCSID");
            dc.MQ_CHANNEL = prop.getProperty("MQ_CHANNEL");
            dc.MQ_HOST_NAME = prop.getProperty("MQ_HOST_NAME");
            dc.MQ_MANAGER = prop.getProperty("MQ_MANAGER");
            dc.MQ_PROT = prop.getProperty("MQ_PROT");
            dc.MQ_QUEUE_NAME = prop.getProperty("MQ_QUEUE_NAME");
            dc.MQ_QUEUE_SUB = prop.getProperty("MQ_QUEUE_SUB");
            dc.FILE_DIR = prop.getProperty("FILE_DIR");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return dc;
    }

    public static MQConfig MqConfig() {

        MQConfig dc = new MQConfig();
        ResourceBundle rb =  getCFG();
        try {
            // fis = new FileInputStream(new File(path + ACTIONPATH));
            dc.MQ_CCSID = RenameUtil.getParameter(rb,"MQ_CCSID");
            dc.MQ_CHANNEL = RenameUtil.getParameter(rb,"MQ_CHANNEL");
            dc.MQ_HOST_NAME = RenameUtil.getParameter(rb,"MQ_HOST_NAME");
            dc.MQ_MANAGER = RenameUtil.getParameter(rb,"MQ_MANAGER");
            dc.MQ_PROT = RenameUtil.getParameter(rb,"MQ_PROT");
            dc.MQ_QUEUE_NAME = RenameUtil.getParameter(rb,"MQ_QUEUE_NAME");
            dc.MQ_QUEUE_SUB = RenameUtil.getParameter(rb,"MQ_QUEUE_SUB");
            dc.FILE_DIR = RenameUtil.getParameter(rb,"FILE_DIR");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dc;
    }

    public static MQConfig getNewDbConfigFromKey(String key) {
        MQConfig dc = null;
        Properties prop = new Properties();
        String path = null;
        InputStream fis = null;
        try {
            fis = MQConfig.class.getClassLoader().getResourceAsStream(
                    "config.properties");
            // fis = new FileInputStream(new File(path + ACTIONPATH));
            prop.load(fis);
            dc = new MQConfig();
            dc.MQ_MANAGER = prop.getProperty(key + "_MQ_MANAGER");
            dc.MQ_CCSID = prop.getProperty(key + "_MQ_CCSID");
            dc.MQ_CHANNEL = prop.getProperty(key + "_MQ_CHANNEL");
            dc.MQ_HOST_NAME = prop.getProperty(key + "_MQ_HOST_NAME");
            dc.MQ_PROT = prop.getProperty(key + "_MQ_PROT");
            dc.MQ_QUEUE_NAME = prop.getProperty(key + "_MQ_QUEUE_NAME");
            dc.MQ_QUEUE_SUB = prop.getProperty(key + "_MQ_QUEUE_SUB");
            dc.FILE_DIR = prop.getProperty(key + "_FILE_DIR");
        } catch (FileNotFoundException e) {
            dc = null;
        } catch (IOException e) {
            dc = null;
        }

        return dc;
    }

    public static void main(String args[]) throws Exception {
        MQConfig mc = MQConfig.getNewDbConfigFromKey("002");
        System.out.println(mc);
    }

    public void setMQ_QUEUE_SUB(String mQ_QUEUE_SUB) {
        MQ_QUEUE_SUB = mQ_QUEUE_SUB;
    }

    public String getMQ_QUEUE_SUB() {
        return MQ_QUEUE_SUB;
    }

    public static String getValueByKey(String key) {
        InputStream fis = null;
        String value = null;
        Properties prop = new Properties();
        try {
            fis = MQConfig.class.getClassLoader().getResourceAsStream(
                    "config.properties");
            prop.load(fis);
            value = prop.getProperty(key);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return value;
    }
}
 本文由用戶 hwl0420 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!