1

次の問題が
あります。Tomcat で Web アプリケーションの一部としてロードされたさまざまなクラスからクリーンアップ コードを実行する必要があります。
クリーンアップ コードは、シャットダウンexecutorsからデータベース クリーンアップ コードまで多岐にわたります。
私は試してみて、次のことを発見しました(そして、これがそのように文書化されていることを後で知りました):

ServletContextListeners にコンテキストの破棄が通知される前に、すべてのサーブレットとフィルターが破棄されます。

したがって、これにより、クリーンアップ コードを any で実行することが除外されますServletContextListeners。のメソッドに
クリーンアップ コードを配置しましたが、クライアントがその使用を必要としない場合、ロードされないため、メソッド内のクリーンアップ コードが実行されないことに気付きました。 だから今私は立ち往生しています。 たとえば、クリーンアップ コードを Web アプリケーションに配置するのに最適な場所はどこですか? destroyServletdestroy

servletlistener

4

1 に答える 1

0

起動時にロードするようにサーブレットを構成するオプションがある場合は、前述のように問題を回避できます。

例といくつかの説明については、サーブレットの <load-on-startup> 値が意味するものを参照してください。

于 2013-07-26T13:50:40.097 に答える