16

我很好奇是否有人对提供访问 MSMQ 的 Java 库有任何建议?我已经下载了 J-Integra Java-COM 库的试用版,并构建并运行了他们的 MSMQ 示例应用程序,但我很好奇是否有任何好的(免费 :))替代方案。我遇到过一些 JNI 实现,比如 jMSMQ 和其他一些实现,但如果可能的话,我宁愿避免使用 JNI。

我们还研究了一些 .NET<->JMS 互操作解决方案,例如 JNBridge(使用 ActiveMQ)。我认为我们公司已经决定将我们的队列集中在 MSMQ 中,所以这将是我们理想的解决方案。

我们希望在 .NET 端使用 WCF(netMsmq 或 msmqIntegration)。我有点担心 java 端将如何处理 WCF 消息(二进制编码),但那里应该有选项(带有文本编码和 MSMQ 传输的 customBinding?),所以我不太担心。主要担心在 Java 中访问 MSMQ。

我们的另一个选择是在每个队列的输入端放置一个瘦 Web 服务层,并以这种方式实现互操作。然而,性能在那里有点令人担忧。

有什么建议么?非常感谢任何人的时间。

4

5 回答 5

11

据我了解,J-Integra 是 MSMQ 的唯一纯 Java 实现,也就是说,如果您不在 Windows 上运行,这是唯一的选择。(如果有其他选择,请告诉我!)

Apache Camel 和其他人使用 JNI 来访问 Windows API(DLL 文件),这显然意味着它只适用于 Windows。

我目前正在尝试这里提供的代码http://www.codeplex.com/MsmqJava这似乎很容易使用,但我不确定事务是如何工作的。

于 2009-02-11T09:10:28.900 回答
3

CodePlex 上有一个开源库: MsmqJava。自由。

于 2009-05-11T15:44:15.927 回答
2

我是jni4net的作者,它是 JVM 和 CLR 之间的开源进程内桥梁。它建立在 JNI 和 PInvoke 之上。无需 C/C++ 代码。我希望它会帮助你。

于 2009-10-31T18:33:17.907 回答
2

您也可以尝试http://javamsmq.codeplex.com/,它也提供了 MSMQ JAVA 互操作性的完整解决方案。以及它具有 Unicode ASCII 所有功能。在其他基于 dll 的开源中存在内存泄漏问题,如应用程序崩溃.但是这个开源没有任何内存泄漏问题。

于 2009-12-16T22:29:34.267 回答
1

更新:此答案不再适用于每条评论:

Camel msmq 组件已停产: fusesource.com/forums/thread.jspa?messageID=6040

你可以看看 Apache Camel 是如何做到的:Apache Camel: msmq

于 2009-02-03T20:03:53.753 回答