sách gpt4 ai đã đi

jakarta-ee - Java EE 应用程序启动失败

In lại 作者:行者123 更新时间:2023-12-03 22:42:09 31 4
mua khóa gpt4 Nike

如果在应用程序初始化期间发生异常,是否有任何方法可以防止 Java EE 应用程序启动?在从 JSR-77 抛出未处理的异常之后,我基本上是在寻找一种方法来使应用程序进入“j2ee.state.failed ”状态(根据 ServletContextListener )。或 Singleton Startup 应用程序初始化期间的 bean。

EJB specification似乎表明如果在 Singleton 初始化期间发生异常, bean,应用程序将继续启动并运行而不会出错;但是,只有 bean 本身可能处于无法调用的状态。不幸的是,这不是我正在寻找的行为。

4.8.4 Singleton Error Handling

Errors occurring during Singleton initialization are considered fatal and must result in the discarding of the Singleton instance. Possible initialization errors include injection failure, a system exception thrown from a PostConstruct method, or the failure of a PostConstruct method container-managed transaction to successfully commit. If a singleton fails to initialize, attempted invocations on the Singleton result in an exception as defined by Section 3.4.3 and Section 3.4.4.



Servlet specification它的要求有点模棱两可,似乎不需要容器以任何特定方式运行,而只是建议(通过使用术语“可能”)Web模块继续启动,但任何请求都应该导致内部服务器错误。同样,不幸的是,这不是我正在寻找的行为。如果 Web 应用程序无法处理任何请求,为什么还要继续启动并看起来正在运行?

11.6 Listener Exceptions

The container may respond to all subsequent requests to the Web application with an HTTP status code 500 to indicate an application error.



根据我的经验,我看到应用程序服务器以不同的方式处理此要求。一些容器实际上会阻止应用程序在这些情况下启动,而其他容器只会抑制异常并响应 500 错误的请求,如规范中所建议的那样。

如果在初始化期间发生异常,我是否忽略了规范中会阻止应用程序启动的任何部分?

1 Câu trả lời

我认为这取决于您使用的应用程序服务器。正如您所提到的,如何处理无效状态的部署取决于他。部署失败时不会处于事件状态,因此您必须提供一项服务,以查找部署成功启动时应提供的提示。如果没有,您可以通知管理员。但这都是特定于服务器的,或者需要外部工具。

在一些项目中,我们使用 [nagios][1] 和 [rhq][2] 来检查部署。例如,nagios 在 JBossAS 上检查 jmx-console 以获取所需的部署。如果在部署后的几秒钟内未显示已部署的应用程序,则会通知 IT 人员。

关于jakarta-ee - Java EE 应用程序启动失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043484/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com