2

http クライアントからの呼び出しを受信するために jetty サーバーを使用しています。

BufferedWriter オブジェクトを使用して、デバッグ用のログ ファイルを書き込んでいます。

サーバーは、通話を受信するために常に実行されています。

サーバーが停止したときにストリーム (log_file.close) のみを閉じるようにプログラムに指示するにはどうすればよいですか?

サーバーを停止することは想定されていませんが、プログラムが終了する前に (たとえば、終了ボタンをタッチしたとき)、その時点でストリーム ファイルを閉じるにはどうすればよいですか?

4

2 に答える 2

3

Jetty Embeddedを実行している場合は、いくつかのオプションがあります。

Jettyのバージョンを指定していないため、正確なコードを提供することはできませんが、オプションは次のとおりです。

  • サーバーに「LifeCycle」オブジェクトを登録し、stopそのライフサイクルオブジェクトにログファイルを閉じるメソッドを実装します。(Jettyのバージョンに応じて、addLifeCycleaddBeanなどを使用します)

  • JVMにシャットダウンスレッドを追加します(Runtime.addShutdownHook

于 2012-02-20T09:11:37.320 に答える
3

コードが Web アプリケーション (別名 war) 内で実行ServletContextListenerされている場合は、web.xml.

で、contextInitialized必要な init 操作を行うことができます。

contextDestroyedストリームを閉じることができます。

于 2012-02-19T08:47:32.450 に答える