0

我需要在 Glassfish 服务器和 Delphi 之间进行通信。我需要接收它的消息。我发现 Glassfish 使用 OpenMQ 代理。

首先,我找到了 delphi 的 jms 库。我发现那里只有 JMS 接口。并发现那里有 SonicMQ JMS 实施。但正如我发现的那样,SonicMQ 和 OpenMQ - JMS 的不同代理。也许我错了。

我还找到了适用于 OpenMQ 的 Habari 客户端库,但这些库不是免费的。

也许有人知道这个问题的任何免费解决方案?或者我弄错了,我可以使用 SonicMQ 实现?

我已经下载了 Habari 演示程序,但无法连接到 glassfish 服务器(连接已完全关闭)。也许我做错了什么?我只需要收到消息。我不需要发送它们。

我以前从未使用过 JMS,这就是为什么我有这样的问题。

4

1 回答 1

3

正如您在评论中所写,运行 GlassFish 服务器的组织不允许使用独立于平台的 STOMP 协议来访问服务器。

这意味着与消息代理交换消息的唯一方法是使用 OpenMQ 的专有 Java 客户端(GlassFish 中的默认 JMS 提供程序)。

因此,您需要一个 Java / Delphi 桥接器,它使用 Java 客户端接收消息,然后将它们传递到 Delphi 端。与 Delphi 端的通信可以通过 TCP/IP 完成,这将允许同步和异步接收消息:使用请求/响应通信方式(“同步”通信,拉下一条消息由 Delphi 端发起)或 Delphi 端的侦听器线程,消息将从 Java 端“异步”推送到该线程。


不同的通信路径可能是通过 C API。这需要在 Delphi 中导入 C 客户端库。MQ 文档集合中提供了 c-api 的程序员指南。

于 2014-07-02T06:24:27.640 回答