質問
WebMvcConfigurationSupport を使用せずにインターセプトした場合に返されるデータは JSON 形式ですが、WebMvcConfigurationSupport を使用してインターセプトした場合、返されるデータは XML 形式になります。
理由
Spring フレームワークでは、WebMvcConfigurationSupport は Spring MVC の構成をカスタマイズするために使用できるクラスです。アプリケーションで WebMvcConfigurationSupport を使用しており、以前に返された JSON データが XML になっている場合は、構成に何らかの変更を加えたために、デフォルトのメッセージ コンバーターが変更された可能性があります。
デフォルトでは、Spring はメッセージコンバーターとして MappingJackson2HttpMessageConverter を使用します。これにより、Java オブジェクトを JSON 形式のデータに変換できます。WebMvcConfigurationSupport クラスを継承するときにメッセージ コンバータを明示的に指定しない場合、Spring は Java オブジェクトを XML 形式のデータに変換できる Jaxb2RootElementHttpMessageConverter などの他のデフォルトのメッセージ コンバータを使用する可能性があります。
解決
@Configuration
public class CustomWebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2HttpMessageConverter());
super.configureMessageConverters(converters);
}
}