1

すべての戦争が展開されたときにログ行を書く必要がありました。私がフックできるTomcatのデプロイヤーのオブザーバーパターンはありますか?

最初の起動時に、jBoss/Tomcatは起動に費やした正確な時間を含む行を送信します。完璧ではありません...しかし動作します。

しかし、ホットデプロイでは、通知/ログは送信/書き込みされません:(

(プロジェクトには約100個のサーブレットがあり、それらをすべて順番にリストして、最後のサーブレットが初期化されたらデプロイメントが終了したと推測するリスクがあるため、そのようなソリューションをスキップしてみましょう)

ヒントはありますか?

4

2 に答える 2

3

JBoss JMX API を見ましたか? とりわけ、デプロイを管理できる MainDeployer MBean があり、listIncompletelyDeployed()まだデプロイされていないものを確認するために呼び出すことができるメソッドがあります。ListenerServiceMBeanSupport を使用すると、JMX 通知をサブスクライブできます。

正確な解決策を提供することはできませんが、JMX を調べてみると、必要なものが得られる場合があります。

于 2011-07-07T12:21:42.473 に答える
0

私はそれjavax.servlet.ServletContextListenerがあなたが望むものかもしれないと思います:

http://download.oracle.com/javaee/5/api/javax/servlet/ServletContextListener.html

作成および破棄されたコンテキストのライフサイクル イベントが表示されます。おそらく、個々のサーブレットのサーブレットの init および destroy メソッドと組み合わせると、役立つ可能性があります。

于 2011-07-07T12:17:34.050 に答える