在我的Spring Boot应用程序中,我收到消息:org.springframework.context.NoSuchMessageException: No message found under code 'invalidAdminPassword' for locale 'en_GB'.
我知道这是由于MessageSource
对象在我的代码中被定义为:
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
Locale.setDefault(Locale.UK);
messageSource.setBasename("messages_en_GB");
messageSource.setCacheSeconds(3600); // Refresh cache once per hour.
return messageSource;
}
在messages_en_GB.properties
中,我有消息:
# Other validation messages.
invalidAdminPassword=Invalid password.
在控制器中我有:
System.out.println(messageSource.getMessage("invalidAdminPassword", null, Locale.UK));
只是为了测试messages_en_GB.properties
文件中的检索。
我相信我使用的是Spring Boot默认设置,为什么我会收到org.springframework.context.NoSuchMessageException: No message found under code 'invalidAdminPassword' for locale 'en_GB'.
消息?
有人可以提供建议吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
有可能的错误可以检查。
如果使用Java配置,则必须类似于
- "traefik.frontend.rule=Host:example.com"
在此,我们的消息文件应位于定义的WEB-INF中。
或
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
}
如果仅定义
@Bean(name="messageSource")
public MessageSource setUpmessageSource() {}
然后没有名为public MessageSource setUpmessageSource() {}
的bean