Spring rest アプリケーションが xml と json の両方の応答を処理できるようにしようとしていますが、Jaxb メッセージ コンバーターを追加すると json マッピングが壊れてしまったようです。
@Bean
public MappingJackson2HttpMessageConverter jsonConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(String.class, new StringSerializer());
ObjectMapper mapper = new ObjectMapper()
.registerModule(simpleModule);
converter.setObjectMapper(mapper);
return converter;
}
@Bean
public Jaxb2RootElementHttpMessageConverter jaxbConverter() {
return new Jaxb2RootElementHttpMessageConverter();
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(jsonConverter());
converters.add(jaxbConverter());
}
そこで 2 番目と 3 番目のメソッドをコメントアウトすると、すべてが再び機能し始めます (もちろん xml マッピングを除く!)。しかし、そこにあると、リンゴ、オレンジ、バナナがリスト内の別々の文字列である でList<String>
結果をシリアル化するなど、めちゃくちゃになります。[APPLEORANGEBANANA]
ジャクソンオブジェクトマッパーを直接使用してjsonにマップする場合、その問題はありませんが、@ResponseBody
注釈を使用してjsonに自動的にシリアル化すると、この問題が発生します。
誰にもアイデアはありますか?