我有一个在嵌入式Grizzly上运行的Jersey应用程序,该应用程序的初始化如下:
HttpServer httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
我想要实现的是在关闭时让正在运行的请求完成,但不允许新的请求进入。我找不到通过HttpServer的公共(public)方法来实现此目的的方法,或者甚至没有使用私有(private)方法之类的方法(尽管它是不好,通过反射访问私有(private)内容的解决方案也是可以的)
有人知道这怎么可能吗?
最佳答案
使用Grizzly 2.3.4可以实现;请参阅Gracefully Terminating a Grizzly Transport上的文章。简而言之,请在特定于实现的传输机制(例如NIOTransport
,TCPNIOTransport
或UDPNIOTransport
)上实现使用GracefulShutdownListener注册的Transport.addShutdownListener()。
关于java - 是否可以将Grizzly设置为正常关机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12478709/