Java连接MQ的实例, 测试类

  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. }
时间: 2024-10-30 21:28:35

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

一个简单的Java 连接SQL Server数据库连接驱动类

import java.sql.*; /** * SQL Server数据库连接类 * @author Administrator * */ public class Sqlsdc { static int a = 0; public Connection sqlsdc(String user, String pwd, String dn) { String url = "jdbc:sqlserver://localhost:1433;databaseName="+dn; final

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

/** * Title: ConnectPool.java * Description: 连接池管理器 * Copyright: Copyright © 2002/12/25 * Company: * Author : * Version 2.0 */ import java.io.*; import java.sql.*; import java.util.*; import java.util.Date; /** * 管理类DBConnectionManager支持对一个或多个由属性文件定义

java根据概率随机中奖 测试类

最近要做一个宝箱抽奖的功能 自己先联系了一下,分别用 list和set 进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论. 废话少说上代码: package com.test.testRandom; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.u

java连接mysql数据库实例

做游戏客户端多一年多了,在大学学的java的SSH,基本上都忘完了,今天看了一下发现基本的连接数据库的都忘了...太可怕了这遗忘的速度. 所以写了个连接的例子吧..安装好mysql数据库之后新建了两张表tx1,tx2.接下来连接数据库,往前面两张表里插入数据. 首先是公共连接类: TestConnection.java package cn.wan; import java.sql.Connection; import java.sql.*; public class TestConnectio

Java nio socket与as3 socket(粘包解码)连接的应用实例

对Java nio socket与as3 socket连接的简单应用 <ignore_js_op>Java nio socket与as3 socket连接的应用实例.rar (9.61 KB, 下载次数: 1691) 这个从基本的弄起太复杂了,我弄个了mina与flash通信的,通信数据模式是dataLength+data(数据长度+数据内容),对于socket字节流通信,我习惯用这种方式,方便粘包解码处理.其中已包含所需的jar包,客户端代码须另自写,不可沿用.flash socket发送的

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

鉴于linux系统下安装oracle数据库过于麻烦,而相关的java连接mysql基本方法的参考文章过少且参差不齐,故本人查阅了一些书和网络资料写下此文章. 从数据库环境搭建.基本语法到封装工具类全过程,可作为参考.转载请注明来源. 一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static connection getConnection(String u

mongoDB工具类以及测试类【java】

java操作mongo工具类 package Utils; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCurs

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

Java如何在静态方法中访问类的实例成员(没附加static关键字的字段或方法)

Java如何在静态方法中访问类的实例成员(没附加static关键字的字段或方法)?? static修饰的在加载时是先于非静态的加载,也就是如果在static中如果调用了非静态的方法或变量会报错,因为此时非静态的方法和变量还不存在(可以这样理解) . 在静态方法中访问类的实例变量需首先进行类的实例化,除了加static修饰,还可以先new创建一个对象,通过对象去调用成员方法和变量,如new A().test(). 例如: package 静态方法访问实例变量; public class Test{