直接进入主题
一、安装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技术感兴趣的请查阅相关资料