我有一个在嵌入式Grizzly上运行的Jersey应用程序,该应用程序的初始化如下:

HttpServer httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, rc);

我想要实现的是在关闭时让正在运行的请求完成,但不允许新的请求进入。我找不到通过HttpServer的公共(public)方法来实现此目的的方法,或者甚至没有使用私有(private)方法之类的方法(尽管它是不好,通过反射访问私有(private)内容的解决方案也是可以的)

有人知道这怎么可能吗?

最佳答案

使用Grizzly 2.3.4可以实现;请参阅Gracefully Terminating a Grizzly Transport上的文章。简而言之,请在特定于实现的传输机制(例如NIOTransportTCPNIOTransportUDPNIOTransport)上实现使用GracefulShutdownListener注册的Transport.addShutdownListener()

关于java - 是否可以将Grizzly设置为正常关机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12478709/

10-08 22:53