gpt4 book ai didi

java - 我如何知道 Java EE 应用程序何时取消部署?

转载 作者:行者123 更新时间:2023-11-30 06:37:35 25 4
gpt4 key购买 nike

我需要在取消部署我的 Java EE 应用程序时关闭一些流,以避免每次取消部署时在 server.log 中出现异常页面。异常说:“输入流已完成或强制关闭而未明确关闭”。我知道如何关闭(使用 close() 方法),但我不知道何时关闭。

finallize() 来得太晚,@PreDestroy 不仅在取消部署之前被调用,而且在正常操作模式下也会被调用。应用程序如何知道何时取消部署?

编辑:我在创作过程中称之为:

    decisionLogger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(
ksession,
config.getString("rules.logfilename"),
config.getInt("rules.loginterval"));

decisionLogger 属于 KnowledgeRuntimeLogger 类型,它只有 close() 方法。在引擎盖下工作的线程没有 setter/getter 。要温和地关闭它,我需要调用 close 方法,但是什么时候呢?

最佳答案

没有硬性快速的答案,因为 Java EE 包含许多具有不同生命周期的技术。

但我要在黑暗中试一试,建议你看看 ServletContextListener .这将告诉您 Web 应用程序何时停止,这可能是您想要释放资源的时间 - 而不是应用程序卸载时。

关于java - 我如何知道 Java EE 应用程序何时取消部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3316300/

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