Свойства ResourceBundleMessageSource не работают - PullRequest
0 голосов
/ 08 января 2019

Итак, раньше я использовал JDK 8 с Sprint Boot 2.0.3, а теперь перешел на JDK 11 и Spring Boot 2.1.1. И у меня был TemplateEngine Bean, который обрабатывал шаблоны тимили для письма, и он работал нормально с приведенной ниже конфигурацией ReloadableResourceBundleMessageSource

ReloadableResourceBundleMessageSource messageSourceThymeleafConfiguration = new ReloadableResourceBundleMessageSource();
messageSourceThymeleafConfiguration.setBasename("classpath*:i18n/messages");
messageSourceThymeleafConfiguration.setDefaultEncoding("UTF-8");

И теперь, когда я перешел на JDK 11 и Spring Boot 2.1.1, он внезапно перестал работать, и в электронных письмах вместо переводов на основе локали из файла свойств отображаются ключи свойств. Например:

??email.greeting_en??
??email.text1_en??

Я даже пытался заменить боб ReloadableResourceBundleMessageSource на ResourceBundleMessageSource и попробовать его, но он все еще не работает. Я попытался вмешаться в строку базового имени, используя classpath:i18n/messages, i18n/messages все еще не работает.

Любая помощь будет принята с благодарностью.

Редактировать: так выглядит вся моя Конфигурация, связанная с этим

@Configuration
public class MailServiceThymeleafConfiguration {

    @Bean
    public TemplateEngine templateEngineThymeleafConfiguration() {
        SpringTemplateEngine templateEngineThymeleafConfiguration = new SpringTemplateEngine();
        templateEngineThymeleafConfiguration.setTemplateResolver(emailTemplateResolver());
        templateEngineThymeleafConfiguration.setMessageSource(messageSourceThymeleafConfiguration());
        return templateEngineThymeleafConfiguration;
    }

    @Bean
    @Description("Thymeleaf template resolver serving HTML 5 emails")
    public ClassLoaderTemplateResolver emailTemplateResolver() {
        ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
        emailTemplateResolver.setPrefix("mails/");
        emailTemplateResolver.setSuffix(".html");
        emailTemplateResolver.setTemplateMode("HTML5");
        emailTemplateResolver.setCharacterEncoding("UTF-8");
        emailTemplateResolver.setOrder(1);
        return emailTemplateResolver;
    }

    @Bean
    public MessageSource messageSourceThymeleafConfiguration() {
        ReloadableResourceBundleMessageSource messageSourceThymeleafConfiguration = new ReloadableResourceBundleMessageSource();
        messageSourceThymeleafConfiguration.setBasename("classpath*:i18n/messages");
        messageSourceThymeleafConfiguration.setDefaultEncoding("UTF-8");
        return messageSourceThymeleafConfiguration;
    }
}
...