3

JBoss と Weblogic にデプロイされたサードパーティ アプリケーションがあります。監査目的で、このアプリケーションの EJB へのアクセスをログに記録する必要があります。これらの EJB へのすべての呼び出しをファイルまたはデータベースに記録する透過的なサービスを適用することは可能ですか?

私が考えることができる唯一のオプションは、Spring をビジネス デリゲートとして使用し、Spring Bean を使用するようにクライアントを変更することです。残念ながら、クライアント コードを変更するオプションはありません。これは、EJB がクライアントによって呼び出される前後にコードが実行されるように、サーバー上で行う必要があります。

これに対する解決策を探しましたが、正しい方向を示すものは何も見つかりませんでした。

お手伝いありがとう。

編集:

さらに調査した結果、JBoss はカスタム EJB インターセプターをサポートしているようです。これを構成するには、EJB 2.x の場合は standardjboss.xml を、EJB 3.x の場合は ejb3-interceptors-aop.xml を使用します。

結局のところ、EJB 2.x で使用するこのようなインターセプターを作成する方法に関するサンプルとして入手できるものはあまりありません。これは私が必要としているものです。難しそうに見えないので、うまくいくか試してみます。

4

1 に答える 1

3

単純なEJB3インターセプターを使用できるはずです。http://docs.jboss.org/ejb3/docs/tutorial/1.0.7/html/EJB3_Interceptors.htmlでDefaultInterceptorを探して、デプロイメント内のすべてのejbにインターセプターを適用する方法を確認してください。これは、EJB3仕様でサポートされています。

JBossのEJB2.xについては、standard-jboss.xmlを確認してください。そこで、さまざまなejbタイプの完全なデフォルトコンテナを変更できます。また、standard-jboss.xmlで新しいコンテナー構成を作成し、そこにインターセプターを追加して、ejb.jar META-INF /フォルダーにjboss.xmlを含めることにより、EJBを新しい構成に関連付けることもできます。または、私が正しく覚えていれば、META-INF/jboss.xmlで新しいコンテナー構成と関連付けの両方を定義できます。ここにいくつかの情報:http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/EJBDeployer_MBean-Container_configuration_information.html

于 2012-11-12T14:53:18.130 に答える