私たちはエンタープライズアプリケーションを開発しています。すべてのサービスは、穏やかなWebサービスとして公開されます。ビジネスロジックはejbsで書かれています。 ejbsから多くのバックエンドシステムを呼び出さなければなりません。バックエンドは、組織内のさまざまなアプリケーション/チームから公開されているWebサービスです。ejbsにインターセプタをプログレッシブに追加することはできますか?
は、以下の簡単な流れにある
WS1 < - > BL_EJB1 < - > BE_EJB1
WSは、BLは、ビジネスロジックのWebサービスであり、BEバックエンドです。
トランザクション全体をreporting_statsおよびfailure_statsというテーブルに保持します。それらは基本的に、ユーザーID、リクエストが入った時刻、応答が送信された時刻、呼び出されたWebサービスのパス、ビジネスロジックから呼び出されたバックエンドの名前、ステータスバックエンドからの応答を得るためにどれくらいの時間がかかったかなど、バックエンドコールの応答などでした。
このログは、すべてのサービスで共通であるため、トランザクションを記録するためのインターセプタが導入されましたテーブルの詳細。インターセプタとejbsは、EjbContextを介してデータを交換します。以下は、WS1 <修正フロー
ある - >インターセプタ(BL_EJB1)< - >インターセプタ(BE_EJB1)
我々はBL_EJB3からBL_EJB1とBL_EJB2を呼び出す必要がある状況があります。この場合、BL_EJB1とBL_EJB2上のインターセプタをトリガする必要はありません。
開発中にメソッドに注釈を付ける代わりに、インターセプタを実行時に導入する方法はありますか?
(インターセプタの代わりに、またはインターセプタを使用することに加えて)アプリケーションのレイヤーはどうなりますか? WS1はロギングなどが行われる上位ファサードレイヤを呼び出し、上位ファサードレイヤは実際のビジネスロジックが行われる下位レイヤからメソッドを呼び出します。下位層からの他のサービスは、上位のファサード層を通過することなく互いに呼び出すことができる。 – stg