如果spring-boot中的嵌入式tomcat实例失败(例如,端口已在使用中)。spring boot应用程序不知道。TomcatEmbeddedServletContainer使用"StandardSerice“添加连接器,它只捕获异常并记录它。StandardService是一个tomcat类,因此不能在spring-boot的范围内进行更改。
有没有人有一个解决方案,也许可以侦听tomcat生命周期事件,以在spring应用程序中捕获此故障并退出?
这是使用spring boot 1.1.4。通过从eclipse启动应用程序的主类,或者通过运行使用spring-boot maven插件构建的可执行jar,都可以看到相同的行为。
发布于 2014-07-29 03:18:01
你没有说你正在使用哪个版本的Spring Boot,或者你是如何运行你的应用程序的,这使得你很难提供一个明确的答案。
在与java -jar、gradle bootRun或mvn spring-boot:run一起运行的1.1.4.RELEASE中,如果发生端口冲突,则会失败并退出。如果你直接在你的集成开发环境中运行你的应用程序,那么有一个known problem意味着应用程序不会退出。这个问题在最新的1.1.5快照中得到了修复。
https://stackoverflow.com/questions/24996937
复制相似问题