1. package cjf.mq.mqclient;
  2. import com.ibm.mq.MQC;
  3. import com.ibm.mq.MQEnvironment;
  4. import com.ibm.mq.MQException;
  5. import com.ibm.mq.MQGetMessageOptions;
  6. import com.ibm.mq.MQMessage;
  7. import com.ibm.mq.MQPutMessageOptions;
  8. import com.ibm.mq.MQQueue;
  9. import com.ibm.mq.MQQueueManager;
  10. import com.ibm.mq.MQGetMessageOptions;
  11. public class MQClient {
  12. static MQQueueManager qMgr;
  13. static int CCSID = 1381;//WINGBK,1208:UTF-8
  14. static String queueString = "MQ_QUEUE";
  15. public static void connect() throws MQException {
  16. MQEnvironment.hostname = "";
  17. MQEnvironment.channel = "java.channel";
  18. MQEnvironment.port = 1321;
  19. MQEnvironment.CCSID = CCSID;
  20. qMgr = new MQQueueManager("MQ_TEST");
  21. qMgr.disconnect();
  22. }
  23. public static void sendMsg(String msgStr) {
  24. int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
  25. | MQC.MQOO_INQUIRE;
  26. MQQueue queue = null;
  27. try {
  28. // 建立Q1通道的连接
  29. queue = qMgr
  30. .accessQueue(queueString, openOptions, null, null, null);
  31. MQMessage msg = new MQMessage();// 要写入队列的消息
  32. msg.format = MQC.MQFMT_STRING;
  33. msg.characterSet = CCSID;
  34. msg.encoding = CCSID;
  35. // msg.writeObject(msgStr); //将消息写入消息对象中
  36. msg.writeString(msgStr);
  37. MQPutMessageOptions pmo = new MQPutMessageOptions();
  38. msg.expiry = -1; // 设置消息用不过期
  39. queue.put(msg, pmo);// 将消息放入队列
  40. } catch (Exception e) {
  41. // TODO Auto-generated catch block
  42. e.printStackTrace();
  43. } finally {
  44. if (queue != null) {
  45. try {
  46. queue.close();
  47. } catch (MQException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53. }
  54. public static void receiveMsg() {
  55. int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
  56. | MQC.MQOO_INQUIRE;
  57. MQQueue queue = null;
  58. try {
  59. queue = qMgr
  60. .accessQueue(queueString, openOptions, null, null, null);
  61. System.out.println("该队列当前的深度为:" + queue.getCurrentDepth());
  62. System.out.println("===========================");
  63. int depth = queue.getCurrentDepth();
  64. // 将队列的里的消息读出来
  65. while (depth-- > 0) {
  66. MQMessage msg = new MQMessage();// 要读的队列的消息
  67. MQGetMessageOptions gmo = new MQGetMessageOptions();
  68. queue.get(msg, gmo);
  69. System.out.println("消息的大小为:" + msg.getDataLength());
  70. System.out.println("消息的内容:\n"
  71. + msg.readLine());
  72. System.out.println("---------------------------");
  73. }
  74. } catch (Exception e) {
  75. // TODO Auto-generated catch block
  76. e.printStackTrace();
  77. } finally {
  78. if (queue != null) {
  79. try {
  80. queue.close();
  81. } catch (MQException e) {
  82. // TODO Auto-generated catch block
  83. e.printStackTrace();
  84. }
  85. }
  86. }
  87. }
  88. public static void main(String[] args) throws MQException {
  89. connect();
  90. sendMsg("fuck MQ");
  91. receiveMsg();
  92. }
  93. }

Java连接MQ的实例, 测试类的更多相关文章

  1. 功能完善的Java连接池调用实例

    /** * Title: ConnectPool.java * Description: 连接池管理器 * Copyright: Copyright © 2002/12/25 * Company: * ...

  2. 用Java发送HTML格式邮件测试类(支持中文)

    代码由纯Java写成,支持中文,一目了然,只要将Main函数中的相关信息填写正确就直接用了,便于修改,可以在此类基础上任意扩展成自己的类. 注意做HTML形式的邮件,最好把HTML,CSS都写全,只写 ...

  3. java连接mysql数据库实例

    做游戏客户端多一年多了,在大学学的java的SSH,基本上都忘完了,今天看了一下发现基本的连接数据库的都忘了...太可怕了这遗忘的速度. 所以写了个连接的例子吧..安装好mysql数据库之后新建了两张 ...

  4. java连接sqL2008 数据库实例

    package com.lzw; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe ...

  5. java连接外部接口获取数据工具类

    package com.yqzj.util; import org.apache.log4j.LogManager;import org.apache.log4j.Logger; import jav ...

  6. Java导包后在测试类中执行正确但在Servlet中执行错误报ClassNotFoundException或者ClassDefNotFoundException解决办法

    将原来导的包remove from build path,并复制到Web-root下的lib目录中,再add to build path,

  7. SpringBoot测试类启动错误 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

    报错 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Cont ...

  8. 各种数据库连接代码的测试类(java)

    测试类: public class Mytest { Connection conn=null; Statement stmt=null; String myDriver="com.mysq ...

  9. 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类

    一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...

随机推荐

  1. Scrapy框架学习(二)Scrapy入门

    接下来以爬取quote.toscrape.com为例完成一遍Scrapy的抓取流程. 首先创建一个Scrapy项目.打开命令行,输入以下命令: scrapy startproject projectn ...

  2. JavaScript使用Object.defineProperty方法实现双数据绑定

    Object.defineProperty这个方法非常值得学习,很多mvc框架中的双向数据绑定就是通过它来实现的. 本着互联网分享精神,今天我就将我自己的见解分享给大家,希望能有所帮助. 开始使用 O ...

  3. 如何通过 PHP 获取 Azure Active Directory 令牌

    在调用 Azure Rest API 时,如果是属于 Azure Resource Manager 的 API,则需要使用 Azure Active Directory (Azure AD)认证获取令 ...

  4. Python基础学习总结(二)

    2.列表简介 Python有内置的一种数据类型列表:list. list是一种有序的集合. 列表由一系列按特定顺序排列的元素组合.用方括号 [ ] 来表示. list里面的元素的数据类型可以不同,比如 ...

  5. golang 使用rrd的相关资料

    一.简介      RRDtool是指Round Robin Database工具,即环状数据库.从功能上说,RRDtool可用于数据存储+数据展示.著名的网络流量绘图软件MRTG和集群监控系统Gan ...

  6. Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别(摘抄和理解)

    1. 自旋锁的优缺点: 自旋锁 自旋锁原理非常简单,如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持 ...

  7. pyhton基础

    python是一种什么语言?python是一种动态解释性的强类型定义的语言(1)编程语言分类 编译型: 把源程序的每一条语句都编译成机器语言,并保存成二进制文件, 这样运行时计算机可以直接以机器语言来 ...

  8. 前端使用nginx上传文件时,进度获取不对

    在使用iview时,上传文件获取进度时onUploadProgress返回数据不对. 原因是开启了nginx代理,本地上传时先传到本地nginx然后在传到服务器,导致获取进度不对 解决:在nginx的 ...

  9. Linux Centos7安装Oracle12c第二版本

    环境: CentOS7@VMware12,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB Oracle12C企业版64位 下载地址:http://www.oracle.com/technet ...

  10. easyui numberbox输入框 编辑不可编辑的切换

    背景:申请单里需要选费用类型,费用类型有的有子明细项,有个合计项    当有子明细项的时候,合计项的值是通过弹出的子明细项价格的总和(设置为可编辑没问题,因为点击出来弹框,编辑不了)    没有子明细 ...