在 wildfly 中使用执行器重新启动 spring 启动应用程序

Restart spring boot application using actuator in wildfly

我正在尝试使用 Spring Boot Actuator 重新启动 spring 以更新其最新属性。

我遵循了这个教程: https://javapointers.com/spring/spring-boot/how-to-restart-spring-boot-automatically-using-actuator/

所以我所做的只是添加属性

management.endpoint.restart.enabled=true
management.endpoints.web.exposure.include=restart,health

并调用端点

{host}/actuator/restart

我在本地使用嵌入式 tomcat 服务器对其进行了测试,它可以正常工作。

但是当我在 jboss/wildfly 中尝试时,因为我的客户将它用于他们的生产服务器,所以它不起作用。

这是我得到的错误:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'server-org.springframework.boot.autoconfigure.web.ServerProperties': Could not bind properties to 'ServerProperties' : prefix=server, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is java.lang.IllegalStateException: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3aa3a991 has been closed already

如果我需要提供其他信息,请告诉我。

也许你可以看看 Spring Cloud Config 来正确解决你的问题:Spring Cloud Config

它允许您外部化属性、管理它们并将它们公开给客户端(例如您的应用程序)。

它还有一些好处,例如 'No restart needed'