[英]NoSuchMessageException with MessageSource in Spring Boot
我正在使用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文件(如果存在)並且它具有與其他文件相同的密鑰。
通常,當未配置MessageBundle或配置錯誤時會發生此異常。
更改
messageSource.setBasenames( “I18N /消息”);
至
messageSource.setBasenames( “/ I18N /消息”); 或messageSource.setBasenames(“ classpath:/ i18n / messages”);或
如果是i18n,則為i18n文件的根目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.