邮件服务器未连接时,Jhipster Health Endpoint失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮件服务器未连接时,Jhipster Health Endpoint失败相关的知识,希望对你有一定的参考价值。

JHipster / Spring引导提供了一个很好的端点/management/health,它聚合了db,disk和mail等子系统的健康信息。不幸的是,当与邮件服务器的连接失败时,整个端点都会失败。因此,您无法获得失败的信息。

我得到这样的堆栈跟踪:

o.s.b.a.health.MailHealthIndicator       : Health check failed

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: XXXX, NNNN25025; timeout -1
...
   at org.springframework.boot.actuate.health.MailHealthIndicator.doHealthCheck(MailHealthIndicator.java:40)
    at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:43)
    at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
    at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:85)
    at org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.getCurrentHealth(HealthMvcEndpoint.java:177)
    at org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.getHealth(HealthMvcEndpoint.java:166)
    at org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(HealthMvcEndpoint.java:143)

这是spring boot 1.5.9我应该在哪里解决这个问题,以便捕获异常而返回错误状态?

答案

您必须打开SMTP服务器或禁用对它的检查。

禁用对SMTP服务器的检查:

management.health.mail.enabled=false

禁用对所有服务器的检查:

management.health.defaults.enabled=false

有关更多信息,请参阅http://www.briansjavablog.com/2017/09/health-checks-metric-s-more-with-spring.html

我相信你可以使用ExceptionHandler处理1.5.9版Spring Boot的错误,因为新版本没有这样的问题:

     @ControllerAdvice
     public class ExceptionController {

        @ExceptionHandler(MailConnectException.class)
        public ResponseEntity<?> mailExceptionHandler(MailConnectException e) {
              // Do your treatment ...
            } ... 
    }

以上是关于邮件服务器未连接时,Jhipster Health Endpoint失败的主要内容,如果未能解决你的问题,请参考以下文章

jhipster - gyp动词`which`失败错误:未找到:python2

在 tomcat 上运行的 jHipster 客户端未与在开发模式 mvnw 下运行的服务器通信

Jhipster 使用电子邮件而不是用户名登录

Jhipster Prod 构建失败以及未找到 Cloudfoundry 错误

当我使用 liquibase 更改模型数据时,JHipster 集成测试失败

使用 JHipster、Spring Security 和 oauth2 控制身份验证重定向