java.lang.RuntimeException: com.netflix.client.ClientException: у балансировщика нагрузки нет доступного сервера для клиента, как его решить - PullRequest
0 голосов
/ 20 сентября 2019

Я использую весеннюю загрузку 1.5, поэтому я пытаюсь отправить асинхронную почту, когда пользователь создает предупреждение, но это не работает, и эта ошибка отображает https://drive.google.com/open?id=1wqrF5YjCT3p9rl5wH3tVZvoPRDM6oWEA спасибо за вашу помощь, вот мой сервис

   @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;
    }
}
...