2015-02-10 78 views
1

我在配置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。Spring 4 Rest RequestMappingHandlerAdapter不保存已配置的消息转换器

所以,我需要知道如何:

  1. 如何告诉Jaxb2RootElementHttpMessageConverter用我的配置JAXB2Marshaller;其配置与JAXBIntroductions工作,
  2. 注销Jaxb2RootElementHttpMessageConverter在Spring 4.1.4,
  3. 告诉Spring 4.1.4当看到XML数据,而不是使用的Jaxb2RootElementHttpMessageConverter MarshallingHttpMessageConverter,
  4. 创建自己的自定义版本Jaxb2RootElementHttpMessageConverter,所以我可以给它正确的JAXB2 Marshaller;它被配置为与JAXBIntroductions一起使用,或者
  5. 获取RequestMappingHandlerAdapter以仅使用我给它的配置。

任何帮助上述五个选项将不胜感激。

谢谢。

Tonté

+0

你确定它正在配置相同的实例并且没有重复吗? – chrylis 2015-02-10 18:18:52

回答

0

我也面临同样的问题。 您必须从上下文文件中删除mvcannotationDriven。 即使我们指定了转换器列表,它也会重写转换器。

相关问题