0

Glassfish サーバーと Delphi の間で通信を行う必要があります。そこからメッセージを受け取る必要があります。私が発見したように、Glassfish は OpenMQ ブローカーを使用しています。

まず、デルファイの jms ライブラリを見つけました。JMSインターフェースだけが見つかりました。そこに SonicMQ JMS の実装が見つかりました。しかし、私が見つけたように、SonicMQ と OpenMQ - JMS の異なるブローカーです。たぶん私は間違っています。

また、OpenMQ 用の Habari Client Libraries を見つけましたが、このライブラリは無料ではありません。

多分誰かがこの問題の無料の解決策を知っていますか? または、私は間違っていて、SonicMQ の実装を使用できますか?

Habari デモ プログラムをダウンロードしましたが、glassfish サーバーに接続できません (接続が正常に閉じられました)。多分私は何か間違ったことをしていますか?メッセージを受け取るだけです。私はそれらを送る必要はありません。

JMS を使用したことがないため、そのような質問があります。

4

1 に答える 1

3

コメントで書いたように、GlassFish サーバーを実行している組織は、プラットフォームに依存しない STOMP プロトコルを使用してサーバーにアクセスすることを許可していません。

つまり、メッセージ ブローカーとメッセージを交換する唯一の方法は、OpenMQ 用の専用 Java クライアント (GlassFish のデフォルト JMS プロバイダー) を使用することです。

そのため、Java クライアントを使用してメッセージを受信し、Delphi 側に渡す Java/Delphi ブリッジが必要になります。Delphi 側との通信は TCP/IP を介して行うことができます。これにより、メッセージの同期および非同期の受信が可能になります。要求/応答通信スタイルを使用します (「同期」通信、次のメッセージのプルは Delphi 側によって開始されます)。または、メッセージが Java 側から「非同期的に」プッシュされる Delphi 側のリスナー スレッド。


通信への別のパスは、C API 経由である可能性があります。これには、C クライアント ライブラリを Delphi にインポートする必要があります。c-api のプログラマー ガイドは、MQ ドキュメント コレクションで入手できます。

于 2014-07-02T06:24:27.640 に答える