【发布时间】:2015-02-10 18:16:48
【问题描述】:
我在配置 RequestMappingHandlerAdapter 时遇到问题;在 Spring 4.1.4 Restful WebService 配置中使用。当我配置 RequestMappingHandlerAdapter 消息转换器时,它不使用我配置的消息转换器。我在RequestMappingHandlerAdapter.setMessageConverters(List<HttpMessageConverter<?>> messageConverters) 方法中放置了断点,在应用程序启动时,我看到这个方法被调用了三次。前两次调用此方法时,它具有预先配置的消息转换器,其中之一是 Jaxb2RootElementHttpMessageConverter。第三次,通过 application-context.xml bean 配置使用我手动配置的消息转换器调用此方法。至此,我认为我已经使用自己的配置成功重置了消息转换器;但事实并非如此,因为当我调用 Restful WebService 时,Spring 调用的是 Jaxb2RootElementHttpMessageConverter 而不是我通过 application-context.xml 手动配置的 MarshallingHttpMessageConverter。
所以我需要知道如何:
- 如何告诉 Jaxb2RootElementHttpMessageConverter 使用我配置的 JAXB2Marshaller;配置为与 JAXBIntroductions 一起使用,
- 在 Spring 4.1.4 中取消注册 Jaxb2RootElementHttpMessageConverter,
- 告诉 Spring 4.1.4 当它看到 XML 数据时使用 MarshallingHttpMessageConverter 而不是 Jaxb2RootElementHttpMessageConverter,
- 创建我自己的 Jaxb2RootElementHttpMessageConverter 自定义版本,以便我可以为其提供正确的 JAXB2 Marshaller;配置为与 JAXBIntroductions 一起使用,或
- 让 RequestMappingHandlerAdapter 只使用我给它的配置。
对于上述五个选项中的任何一个,我们将不胜感激。
谢谢。
汤底
【问题讨论】:
-
你确定它配置的是同一个实例并且你没有重复吗?
标签: spring rest spring-mvc jaxb2