簡體   English   中英

Spring Boot中帶有MessageSource的NoSuchMessageException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM