HTTP受け入れヘッダーを変更できません - 別のロケール解決戦略を使用してください

HTTP Acceptヘッダーを変更できません-別のロケール解決戦略を使用してください

問題

Spring MVCアプリケーションで、ロケールを「org.springframework.web.servlet.i18n.LocaleChangeInterceptor」で変更すると、次のエラーが発生します

java.lang.UnsupportedOperationException:
     Cannot change HTTP accept header - use a different locale resolution strategy
     ...AcceptHeaderLocaleResolver.setLocale(AcceptHeaderLocaleResolver.java:45)

溶液

Spring MVCアプリケーションでは、SpringのLocaleResolverを構成しない場合、デフォルトのAcceptHeaderLocaleResolverが使用されるため、ロケールを変更することはできません。 これを解決するには、Spring Bean構成ファイルでSessionLocaleResolver Beanを宣言してみてください。ほとんどの場合、これが適しているはずです。