次の mvc セットアップを使用した Spring 3.2.4 アプリケーションがあります。
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
configurer.mediaType("json", MediaType.APPLICATION_JSON);
configurer.mediaType("xml", MediaType.APPLICATION_XML);
}
/rest/products.json のようなコントローラーの URL にアクセスすると、JSON 応答が返され、/rest/products.xml を介して期待どおりに XML が返されます。
しかし、/rest/products にアクセスすると XML が取得されますが、それをデフォルトのコンテンツ タイプとして設定したため、JSON を期待していました。
これは、Spring によって無視されるようです。