java 如何向微软的MSMQ发消息

princesshan 2012-04-10 12:24:02
如题。
需要引入什么包?或者什么dll?
如何使用?
...全文
773 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
等烟雨 2013-08-29
  • 打赏
  • 举报
回复
后来呢,解决了吗,我也遇到一样的问题
热血大婶 2013-01-10
  • 打赏
  • 举报
回复
引用 5 楼 princesshan 的回复:
我想知道myqueue这个消息队列是否需要提前建立好。 怎么建立?
应该是需要先建立好的。根据三楼的方法先打开msmq服务,然后从控制面板进入“计算机管理”,打开左边的“服务和应用程序”,下面会有一个“消息队列”,打开下面有一个“专用队列”,在专用队列上面右击,然后新建就可以了。
princesshan 2012-04-10
  • 打赏
  • 举报
回复
我想知道myqueue这个消息队列是否需要提前建立好。
怎么建立?
princesshan 2012-04-10
  • 打赏
  • 举报
回复
服务已经起来了,所以不知道是不是程序的问题,不知道是不是dll存在问题。
smokerlord 2012-04-10
  • 打赏
  • 举报
回复
跟我的理解不一样 sorry 误导你了

首先MSMQ你安装了吗?服务能起来吗?

下面是我查的资料
MSMQ是微软消息队列服务,一般系统是没有的。可以在安装Windows组件(添加删除程序中找)一项中打开对话框,选中消息队列安装即可


查看相关依存服务,检查是否被禁用
1068 错误一般说的就是从属服务或群组无法激活。
你看还有那个服务被遗漏了。
错误描述:依存服务无法启动

原因:distributed transaction coordinator服务未启动或权限不够

解决:

右击-我的电脑--管理--服务和应用程序--服务--将此服务启动,另外选中此服务右键属性查看依存服务,再看看依存的服务工作是否正常。

服务工作正常了还有权限问题,选中distributed transaction coordinator服务右键属性里面有登陆属性页,改为本地系统账户。

极少数情况下需要进控制台修复和重启服务。

再次运行下输cmd,然后再输
net stop msdtc
msdtc -uninstall
msdtc -install
net start msdtc
应该就可以了。
princesshan 2012-04-10
  • 打赏
  • 举报
回复
java在向msmq发消息之前需要什么准备工作吗?
比如是否需要建立一个队列,

我从网上找了一段代码
try {
Queue queue= new Queue("myqueue");
String label="testmessage";
String body= "Hello, World!";
byte[] correlationId = { 0,2,4,6,8,9 };
Message msg = null;
try {
msg = new Message(body, label, correlationId);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
queue.send(msg);
}
catch (MessageQueueException ex1) {
System.out.println("Put failure: " + ex1.toString());
}


运行的时候报错 Put failure: Cannot open queue. (hr=MQ_ERROR_ILLEGAL_FORMATNAME)
用的是下面的几个包和dll,也是从网上下的。
MsmqJava.dll
MsmqJava.lib
MsmqJava.jar

但是现在运行不起来。
下面是例子的下载地址 http://msmqjava.codeplex.com/

请哪位高人指点一下应该怎么用?

smokerlord 2012-04-10
  • 打赏
  • 举报
回复
下载个jacob.jar和jacob.dll
jar放到你的java工程中 导入进来
dll放到system32里

ActiveXComponent IECSFramework = new ActiveXComponent(progid);
Dispatch.call(IECSFramework , "action", message);
其中progid是msmq在注册表离得progid
call后面的参数你要查下 他这个组件要得参数

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧