java.lang.RuntimeException:com.netflix.client.ClientException:负载均衡器没有可供客户端使用的服务器,如何解决

时间:2019-09-20 10:31:04

标签: java email netflix-eureka

我使用的是Spring Boot 1.5,因此我尝试在用户创建警报时发送异步邮件,但此方法不起作用,并且此错误显示https://youtrack.jetbrains.com/issue/VIM-1363,谢谢您的帮助  这是我的服务

   @Async
    @Override
    public void addedSuccess(EmployeeVO employee, TemplateType type, Map<String, String> customParams) {
        String message = "alert created" ;
        LocalDateTime now = LocalDateTime.now();
        long countTemporaryNotification = temporaryAlertNotificationRepository
                .countTemporaryAlertNotificationByEndAfterAndStartBefore(now, now);

            if (countTemporaryNotification > 0){
                List<TemporaryAlertNotification> temporaryAlertNotifications = temporaryAlertNotificationRepository
                        .findByEndAfterAndStartBefore(now,now);
            if (temporaryAlertNotifications.size() > 0){
                message = temporaryAlertNotifications.get(0).getMessage();
            }
        }

        if (employee != null){
            MessageTemplate messageTemplate =Optional.ofNullable(messageTemplateRepository.findByType(type))
                .orElse(new MessageTemplate.Builder()
                .setSujet(type.getLabel())
                    .setType(type)
                    .setMessage(message)
                    .build());
            fillAndSend(customParams, employee, Lists.newArrayList(), messageTemplate, template );

        }
    }

并且我覆盖了alertService中的服务以使用它

 mailService.addedSuccess(employevo, TemplateType.NEW_ALERT, customParams);

和配置

    @Configuration
public class MailConfig {
    @Value("${alert.mail.host}")
    private String host;
    @Value("${alert.mail.port}")
    private Integer port;
    @Value("${alert.mail.username}")
    private String username;
    @Value("${alert.mail.password}")
    private String password;
    @Value("${alert.mail.properties.mail.smtp.auth}")
    private String auth;
    @Value("${alert.mail.properties.mail.smtp.starttls.enable}")
    private String enable;

    @Bean
    public JavaMailSender alertMailSender() {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(host);
        sender.setPort(port);
        sender.setPassword(password);
        sender.setUsername(username);
        Properties javaMailProperties = new Properties();
        javaMailProperties.put("mail.smtp.starttls.enable", enable);
        javaMailProperties.put("mail.smtp.auth", auth);

        sender.setJavaMailProperties(javaMailProperties);
        return sender;
    }
}

0 个答案:

没有答案