Apache-cxf-with-jms
JMSを使用したApache CXF
前述のように、JMSトランスポートでCXFを使用できます。 この場合、クライアントは既知のMessaging ServerにJMSメッセージを送信します。 私たちのサーバーアプリケーションは、受信メッセージを求めてメッセージングサーバーを継続的にリッスンしています。 メッセージが到着すると、メッセージを処理し、クライアント要求を実行し、応答を別のメッセージとしてクライアントに送信します。
前述のように、 sayHi という単一のWebメソッドを提供するサンプルサーバーアプリケーションを最初に作成します。
サービスインターフェイスの作成
サービスの実装
サービスインターフェイスの実装は次のように定義されています-
実装は単純にHelloメッセージをユーザーに返します。 ご覧のとおり、インターフェイスとその実装は、これまで学習したこのチュートリアルの以前のすべてのプロジェクトに似ています。
次に、メッセージキューを設定し、着信メッセージをリッスンし続けるサーバーアプリケーションを作成することが最も重要なポイントになります。
サーバーの作成
サーバーアプリケーションでは、最初に次のように JMS エンドポイントを作成します-
指定された期間存続する指定されたポートにキューを設定することに注意してください。 org.apache.activemq.broker.BrokerService クラスをインスタンス化して、メッセージングサービスを作成します。 これは、 ActiveMQ メッセージングサーバーのサーバークラスです。
私たちは、着信メッセージのデータストレージ用のディレクトリを設定します-
最後に、startメソッドを使用してサーバーを起動します-
次に、以前のPOJOアプリケーションで使用されているサーバーファクトリBeanクラスを使用して、サービスBean HelloWorld のインスタンスを作成します-
次に、ファクトリが受信メッセージをリッスンし続けるように、ファクトリにJMSエンドポイントを設定します-
最後に、ファクトリで実装クラスを設定し、実行を開始します-
この時点で、サーバーは稼働しています。 POJOアプリケーションのようにファクトリBeanクラスを使用しているため、CXFServletとweb.xmlファイルは不要であることに注意してください。
完全なサーバーアプリケーションコードはここに示されています-
依存関係の追加
作成したサーバーアプリケーションは、ActiveMQメッセージングサーバーを使用します。 したがって、プロジェクトにいくつかの依存関係を追加する必要があります。 追加の必要な依存関係を理解するために、完全なpom.xmlファイルがここに表示されます。
実行中のサーバー
以前の場合のように、サーバーの実行を開始するには、コマンドウィンドウに次のコマンドを入力します-
これにより、ActiveMQメッセージサーバーが起動し、メッセージングキューが設定され、このキューをリッスンし続けるファクトリBeanが作成されます。
次のタスクは、クライアントアプリケーションを作成することです。
クライアントを作成する
クライアントアプリケーションでは、最初にサーバーアプリケーションで使用されるものと同じJMSエンドポイントを設定します-
POJOアプリケーションのようにファクトリーを作成します。
次のようにエンドポイントURIと実装クラスを設定します-
最後に、サービスメソッドを呼び出して、その結果の出力を印刷します-
完全なクライアントコードは以下のとおりです-