使用JAVA向微软消息队列(MSMQ)发送和接收消息

来源:互联网 发布:windows虚拟机软件 编辑:程序博客网 时间:2024/05/17 00:52

直接进入主题

一、安装MSMQ,可按照下面博客安装

安装MSMQ

二、在MSMQ中创建队列



③修改队列的权限(测试的时候全部勾上吧)


三、下载msmqJava所需的jar包和dll文件

官网下载:下载所需文件

CSDN下载:下载所需文件

四、解压所下载的文件

里面有两个文件夹:/bin、/doc

/bin里面是所需的库

/doc里面是文档

五、创建工程

①将/bin目录下的MsmqJava.dll放入项目根目录下,不是src下面

②导入MsmqJava.jar包

③创建带main函数的测试类

项目工程如下图:


六、编写代码及测试

import ionic.Msmq.Message;import ionic.Msmq.MessageQueueException;import ionic.Msmq.Queue;/** * MSMQDemo* @author motianlong * @version 创建时间:2017年1月4日 下午3:15:50  */public class SimpleMSMQ {/** * 加载dll库 */static{System.loadLibrary("MsmqJava");}public static void main(String[] args) {try {//192.32.12.76为本机的IP地址(经测试不能使用127.0.0.1,不然会报错)//private$\\myqueue是队列名字String fullname="direct=tcp:192.32.12.76\\private$\\myqueue";     Queue queue= new Queue(fullname);     //标题     String label="testmessage";     //内容     String body= "Hello, World!";     //这个属性我还没搞清楚是什么,有大神知道的请告知     String correlationId = "123";      //创建消息     Message msg= new Message(body, label, correlationId);     //发送     queue.send(msg); } catch (MessageQueueException ex1) {     System.out.println("Put failure: " + ex1.toString());     ex1.printStackTrace(); } catch (Exception e) {e.printStackTrace();}}}
运行,然后去MSMQ信息查看是否收到消息,收到消息如下图:



这样发送消息就成功了!

接收消息如下代码:

import ionic.Msmq.Message;import ionic.Msmq.MessageQueueException;import ionic.Msmq.Queue;/** * MSMQDemo* @author motianlong * @version 创建时间:2017年1月4日 下午3:15:50  */public class SimpleMSMQ {/** * 加载dll库 */static{System.loadLibrary("MsmqJava");}public static void main(String[] args) {try {//192.32.12.76为本机的IP地址(经测试不能使用127.0.0.1,不然会报错)//private$\\myqueue是队列名字String fullname="direct=tcp:192.32.12.76\\private$\\myqueue";     Queue queue= new Queue(fullname);     Message message=queue.receive();     System.out.println(message.getBodyAsString()); } catch (MessageQueueException ex1) {     System.out.println("Put failure: " + ex1.toString());     ex1.printStackTrace(); } catch (Exception e) {e.printStackTrace();}}}

这种方式是用过JNI技术实现的,但是我们不需要了解实现的过程,msmqJava.jar和dll已经帮我们做了,对JNI技术感兴趣的请查阅相关资料

0 0