gpt4 book ai didi

java - Spring Boot 中 MessageSource 的 NoSuchMessageException

转载 作者:行者123 更新时间:2023-11-30 02:28:53 28 4
gpt4 key购买 nike

我正在使用 Spring Boot 1.5.4 和 Spring Data REST。我将 messages.properties 放入 resources/i18n 文件夹中。在这个文件夹中,我有两个文件:messages.properties 和 messages_it.properties我以这种方式配置了我的 WebMvcConfigurerAdapter:

    @Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("i18n/messages");
messageSource.setDefaultEncoding("UTF-8");
//messageSource.setUseCodeAsDefaultMessage(true);
messageSource.setCacheSeconds((int) TimeUnit.HOURS.toSeconds(1));
messageSource.setFallbackToSystemLocale(false);
return messageSource;
}

当我必须本地化消息时,我会这样做:

        String message = messageSource.getMessage(throwable.getClass().getName(), new Object[] {}, locale);

如果该语言的属性文件存在,则效果很好,否则我会遇到如下异常:

Caused by: org.springframework.context.NoSuchMessageException: No message found under code 'org.springframework.dao.InvalidDataAccessApiUsageException' for locale 'fr_CH'.

我的猜测是由于某种原因,MessageSource 也没有读取 messages.properties 文件(如果该文件存在并且具有与其他文件相同的 key )。

最佳答案

通常,当 MessageBundle 未配置或配置错误时,会发生此异常。

改变

messageSource.setBasenames("i18n/messages");

messageSource.setBasenames("/i18n/messages"); or messageSource.setBasenames("classpath:/i18n/messages");

如果是 i18n,则它是 i18n 文件的根目录。

关于java - Spring Boot 中 MessageSource 的 NoSuchMessageException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756025/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com