使用JAVA代码发送MQ消息

来源:互联网 发布:妙味课堂js课后练习 编辑:程序博客网 时间:2024/05/21 18:37

这一节介绍使用JAVA发送文本内容至MQ中
首先新建一个项目,导入必要的包,我记得,必要的包有6个,后来用了maven,我就把本地的删了,测试的时候,可以把jar全部丢进去,在MQ安装目录有个JAVA——lib文件夹,里面就是用到的架包了。
新建类RemoteTest
其他都我就不写了,稍后在文尾给个下载地址供大家参考。

    /**     * 初始化     */    private static void init()    {        Properties prop = new Properties();        InputStream is = RemoteTest.class.getResourceAsStream("/constant.properties");        try        {            prop.load(is);            Q_MANAGER = prop.getProperty("Q_MANAGER").trim();            HOST_NAME = prop.getProperty("HOST_NAME").trim();            PORT = Integer.parseInt(prop.getProperty("PORT").trim());            MQ_NAME = prop.getProperty("MQ_NAME").trim();            CHANNEL = prop.getProperty("CHANNEL").trim();            CCSID = Integer.parseInt(prop.getProperty("CCSID").trim());            MQEnvironment.hostname = HOST_NAME;            MQEnvironment.port = PORT;            MQEnvironment.channel = CHANNEL;            MQEnvironment.CCSID = CCSID;            qMgr = new MQQueueManager(Q_MANAGER);            int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT;            qQueue = qMgr.accessQueue(MQ_NAME, qOptioin);        } catch (IOException e)        {            e.printStackTrace();        } catch (MQException e)        {            e.printStackTrace();        }    }

这里的配置文件,大家可以手动改以下,由于我这里是将配置文件写在了properties文件里,大家根据自己喜好选择。
我的配置文件是:

队列管理器名称Q_MANAGER = Test主机HOST_NAME = 10.10.10.223端口PORT = 1414队列MQ_NAME = QUEUE通道CHANNEL = CHANNELCCSID = 1383

发送的代码为:

    /**     * 发送消息     */    public static void sendMsg(String msgStr)    {        try        {            init();            MQMessage qMsg = new MQMessage();            qMsg.encoding = CCSID;            qMsg.characterSet = CCSID;            qMsg.writeString(msgStr);            MQPutMessageOptions pmo = new MQPutMessageOptions();            qQueue.put(qMsg, pmo);            System.out.println("发送成功");        } catch (MQException e)        {            System.out.println("发生了一起异常,异常原因:" + e.reasonCode);        } catch (IOException e)        {            System.out.println("发生了一起IO异常:" + e.getMessage());        } finally        {            finalizer();        }    }
    /**     * 手动释放     */    private static void finalizer()    {        try        {            qQueue.close();            qMgr.disconnect();        } catch (MQException e)        {            System.out.println("发生了一起异常,错误代码:" + e.reasonCode);            e.printStackTrace();        }    }

接受的代码为:

    /**     * 接收消息     *      * @return     */    public static String getMsg()    {        final MQMessage revMessage = new MQMessage();        try        {            init();            MQGetMessageOptions gmo = new MQGetMessageOptions();            revMessage.characterSet = CCSID;            revMessage.encoding = CCSID;            gmo.options += MQC.MQPMO_SYNCPOINT;            if (qQueue.getCurrentDepth() <= 0)            {                System.out.println("当前队列深度为0,队列中没有消息。");                return null;            }            qQueue.get(revMessage, gmo);            String revString = revMessage.readStringOfByteLength(revMessage.getMessageLength());            return revString;        } catch (MQException e)        {            if (e.reasonCode == 2033) // 没有消息            {                System.out.println("没收到消息!");            }        } catch (IOException e)        {            e.printStackTrace();        } finally        {            finalizer();        }        return null;    }

自此,就可以通过MQ队列接受和发送消息了。

下载地址:
MQ錯誤代碼合集http://download.csdn.net/detail/u012552275/9781699

MQ的安裝及配置http://download.csdn.net/detail/u012552275/9781644

IBMMQ安裝教程http://download.csdn.net/detail/u012552275/9781643

java的配置文件http://download.csdn.net/detail/u012552275/9815568

MQ工具类http://download.csdn.net/detail/u012552275/9815577

远程测试http://download.csdn.net/detail/u012552275/9815574

其他博客:
WebSphere MQ使用:http://blog.csdn.net/u012552275/article/details/70194285

使用JAVA代码发送MQ消息:http://blog.csdn.net/u012552275/article/details/70194644

JAVA发送接收MQ代码示例:http://blog.csdn.net/u012552275/article/details/70194969

0 0
原创粉丝点击