0

私のエンタープライズ アプリケーションでは、Web レイヤーを EJB レイヤーから分離し、対応するファイル (jar と war) を 2 つの別個のサーバーにデプロイしようとしています。アプリケーションにアクセスするすべてのユーザーに対してデータベース セッションを開きたくないので、データベース内のデータの表現をメモリに格納するバッキング Bean があります。ユーザーがアプリケーションにアクセスするたびに、バッキング Bean のこのデータのみが表示されます。

データベースへの変更が行われるたびに、このデータを更新する必要があるという問題があります。今まで、これには CDI イベントを使用していました。変更が行われ、バッキング Bean がこれらのイベントをリッスンし、データベース セッションを作成してそのコンテンツを更新すると、EJB は CDI イベントをスローするだけでした。

Web アプリケーションと EJB モジュールを別々のマシンにデプロイしたいのですが、CDI イベントは同じ耳に限定されているため、これはおそらく機能しません。私はすでに耳モジュール全体を1つのサーバーにデプロイしようとしましたが、それでもイベントはバッキングBeanによって登録されませんでした.これは正常に動作するはずなので...

そこで私の質問は、JMS を使用してバッキング Bean データを更新する以外に方法はありますか? これはあまり風変わりなユースケースではないと思いますが、この問題に対処する方法に関する情報は見つかりません。

4

1 に答える 1

0

使用している Java EE のバージョンは指定していませんが、7 の場合は、WebSocket APIが手元にあります。サーバー エンドポイントと対話する非ブラウザー ベースのクライアント エンポイントの例は、Oracle WebLogic 12 のドキュメントにあります。

または、更新を通知するためにビジネス アプリケーションによって呼び出されるRESTful Web サービスを Web アプリケーションに実装することもできます。

于 2014-07-17T11:32:23.440 に答える