2017-06-26 67 views
1

私はSpring起動1.5.4とSpringデータRESTを使用しています。私はmessages.propertiesをresources/i18nフォルダの中に入れました。NoSuchMessageException(Spring起動時のMessageSourceで)

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

この:私は私がメッセージをローカライズする必要がある場合

@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; 
    } 

:私はこのように私のWebMvcConfigurerAdapterを構成し messages.propertiesとmessages_it.properties:このフォルダには、私は2つのファイルをしました私の推測では、MessageSourceがn何らかの理由で

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

:プロパティは次のようにそうでない場合、私は例外をした、言語exsists用のファイル場合は正常に動作しますmessages.propertiesファイルが存在し、他のものと同じキーを持っている場合にも、それを読み込みます。

答えて

1

通常、この例外はMessageBundleが設定されていないか、間違った方法で設定されている場合に発生します。

変化

messageSource.setBasenames( "I18N /メッセージ")。

messageSource.setBasenames( "/ I18N /メッセージ")。 またはmessageSource.setBasenames( "classpath:/ i18n/messages");

i18nの場合は、i18nファイルのルートディレクトリです。

+1

ありがとうございました。 messageSource.setBasenames( "/ i18n/messages");は動作しませんが、setBasenames( "classpath:/ i18n/messages");します。ありがとう! – drenda

関連する問題