2009-07-15 4 views
0

私はクラスローダーを管理するJVMで実行しているWebサーバーアプリケーションを持っています。 私のアプリケーションは、サイクルタイムタスタスクを持つシングルトンを持っています。再デプロイメント中に、クラスへの参照をすべて消去します。 私はtimerTaskで私のシングルトンが死なないように見えます。 printでfinalizeメソッドを追加します。 finalizeメソッドは決して呼び出されませんでした。 どのような解決策ですか?タイマータスクでシングルトンを再デプロイ

+0

なぜサーバーで管理できないのですか? –

答えて

4

Servlet lifecycleをご覧ください。あなたのサーブレットはアンロード時に呼び出されるdestroy()を実装できます。タイマーなどをオフにするのに使用してください。

は決してになることがありますので、finalize()が呼ばれています。

0

これらは、春とクォーツでははるかに簡単です。 Springでは、Beanをsingletonと定義することができます(シングルトンデザインパターンとまったく同じではありませんが、あなたのニーズに対応します)。また、QuartzはTimerTaskよりはるかに強力で柔軟性があり、使いやすいです。

Springでは、再デプロイの問題が気になります。 destroyメソッドを定義するだけで済みます。

関連する問題