gpt4 book ai didi

Jersey 2.3 在 servlet 容器关闭时不调用 HK2 服务定位器关闭

转载 作者:行者123 更新时间:2023-12-04 05:57:07 25 4
gpt4 key购买 nike

问题:有没有合适的方法保证HK2和Jersey 2一起关闭?如果不是,这会被视为错误吗?

使用 jersey-server 2.3.1,我注意到 HK2 @PreDestroy托管单例的方法和dispose() Factory<T> 上的方法未调用实现。稍微查了一下,我看到了 ConfigHelper定义一个调用 preDestroy() 的生命周期监听器在服务定位器上,仅此而已。这是从 Jersey ServletContainer 调用的在两个shutdown()reload() ,但就关闭而言,服务定位器没有做任何进一步的事情。

我已经查看了 ServletContainer ,但似乎没有办法通过任何公共(public)或 protected API 访问 HK2 服务定位器。

最佳答案

我遇到了同样的问题。对我来说,解决方案是调用 serviceLocator.shutdown() (我不知道为什么在服务关闭时不自动调用此方法)。调用此方法后,将调用所有 dispose() 方法。问题调用 serviceLocator.shutdown() 的好地方在哪里?我有 ApplicationEventListener 的实现,因此服务可以监听事件 DESTROY_FINISHED、RELOAD_FINISHED。当服务捕获此事件时,将调用 serviceLocator.shutdown()。如果您找到更好的解决方案,请告诉我。

关于Jersey 2.3 在 servlet 容器关闭时不调用 HK2 服务定位器关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com