Java 在程序完成之前,流已关闭
我使用jetty服务器接收来自http客户端的呼叫 我正在使用BufferedWriter对象编写日志文件以进行调试 服务器始终在运行以接收呼叫 我如何告诉程序在服务器停止时只关闭流(log_file.close)Java 在程序完成之前,流已关闭,java,jetty,bufferedwriter,Java,Jetty,Bufferedwriter,我使用jetty服务器接收来自http客户端的呼叫 我正在使用BufferedWriter对象编写日志文件以进行调试 服务器始终在运行以接收呼叫 我如何告诉程序在服务器停止时只关闭流(log_file.close) 我不应该停止服务器,但在程序终止之前(例如,当我触摸终止按钮时),我如何才能在该点关闭流文件?如果您的代码在web应用程序(又名war)中运行,您可以(实际上这是一种最佳做法)实现ServletContextListener并在web.xml中注册它 在contextInitiali
我不应该停止服务器,但在程序终止之前(例如,当我触摸终止按钮时),我如何才能在该点关闭流文件?如果您的代码在web应用程序(又名war)中运行,您可以(实际上这是一种最佳做法)实现
ServletContextListener
并在web.xml
中注册它
在contextInitialized
中,可以进行必要的初始化操作
在
contextdestromed
中,您可以关闭流。如果您正在运行Jetty embedded,那么您有两个选项
您尚未指明Jetty的哪个版本,因此我无法为您提供确切的代码,但您可以选择:
- 在服务器中注册“LifeCycle”对象,并在该LifeCycle对象中实现关闭日志文件的
方法。(根据您的Jetty版本,使用类似或的工具)stop
- 在JVM中添加关机线程(
)Runtime.addShutdownHook