非同期通信の確認
2つのプロジェクトのjarファイル作成
先述の通り、JavaアプリケーションはWebアプリケーションサーバであるGlassFishの外側で起動します。GlassFishにはJavaアプリケーションを起動するためのappclientというバッチファイルが用意されています。デフォルトのインストールでは「C:\Sun\AppSever\bin」に存在します。このフォルダは重宝するバッチファイルが多くあるため、環境変数PATHに追加しておくことをお薦めします。送信側も受信側も次のコマンドで起動します。
appclient -client XXX.jar
XXX.jarは送信側と受信側のjarファイルを指定します。
PTPSenderプロジェクトの場合であれば、NetBeansで[実行]-[主プロジェクトを構築]を選択するとデフォルトでは「C:\Users\tomoharu\Documents\NetBeansProjects\PTPSender\dist\PTPSender.jar」に作成されます。今回2つのプロジェクトがあるため、主プロジェクトを変更するには[実行]-[主プロジェクトとして設定]で変更したのち、同様の操作を行います。
受信側は「C:\Users\tomoharu\Documents\NetBeansProjects\PTPReceiver\dist\PTPReceiver.jar」にjarファイルが作成されます。
送信側と受信側を起動
2つのコマンドプロンプトを開きます。PTPSenderの場合、「C:\Users\tomoharu\Documents\NetBeansProjects\PTPSender\dist\」に移動し、
appclient -client PTPSender.jar
のコマンドを発行すると送信側が起動します。図16のように起動しメッセージをキューに送ったら終了します。
PTPReceiverの場合、「C:\Users\tomoharu\Documents\NetBeansProjects\PTPReceiver\dist\」に移動し、
appclient -client PTPReceiver.jar
のコマンドを発行すると受信側が起動します。図17のように起動し、既に送信側からメッセージが送られているため、メッセージを受け取り終了します。
起動の順番を、受信側->送信側と行うと、受信側は送信側からメッセージが送られてくるのを待っています。送信側を起動すれば、送信側からのメッセージを受け取って終了します。いろいろ順序を変えて確認してください。
今回はトピックの実装例を紹介できませんでしたが、基本的にキューの場合と設定コーディングともよく似ています。ご自身で挑戦されてみてはいかがでしょうか。
サンプルコード
今回作成した2つのプロジェクトのフォルダ構成は図18のようになります。サンプルコードとしてはPtpSenderとPtpReceiverのみを格納します。ページトップからダウンロードしてご利用ください。
次回後編はMBD(Message-Driven Bean)を使用してPTPの実装を説明します。