Excepción de reparto en la clase de negociación de contenido de la primavera 3.2

Desarrollamos una aplicación web Java estándar usando Spring MVC, y recientemente intentamos actualizar de 3.0.6 a 3.2.0. Casi todas nuestras respuestas de servlet son vistas JSP o Json, pero hay algunas que son solicitudes de pdf, con la extensión 'pdf'.

En Spring 3.0.6 tuvimos esta configuración, tomada de la documentación de Spring MVC.

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
  <entry key="pdf" value="application/pdf"/>
  <entry key="html" value="text/html"/>
  <entry key="json" value="application/json"/>
</map>

que funcionó bien, en combinación con un XMLViewResolver.

Después de actualizar a 3.2.0, hay un error:

Error creating bean with name' org.springframework.web.servlet.view.ContentNegotiatingViewResolver#0' defined in class path  resource [dispatcher-test-servlet.xml]: Invocation of init method failed; nested exception is 

java.lang.ClassCastException: java.lang.String cannot be cast to                   org.springframework.http.MediaType'

Después de investigar los documentos y algunos blogs, esta configuración parece funcionar:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
   <property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
    <list>
    <!-- These are evaluated in order -->
    <!-- Is there a media type based on suffix? -->
<bean                  class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
    <map>
<entry key="html" value="text/html" />
<entry key="json" value="application/json" />
<entry key="pdf" value="application/pdf" />
</map>
</constructor-arg>
</bean>
<!-- Else use request header -->
<bean
            class="org.springframework.web.accept.HeaderContentNegotiationStrategy">

</bean>
</list>
</constructor-arg>
</bean>
</property>

Pero, hemos intentado ejecutar el nuevo framework de prueba Spring MVC usando esta configuración, y obtuvimos la excepción ClassCast nuevamente, así que parece que el framework de prueba no está inicializando los beans de la misma manera que cuando se ejecuta la aplicación ... ¿Alguien tiene un ¿Explicación clara de cómo configurar el ContentNegotiatingViewResolver en Spring 3.2 de una manera robusta? Gracias

Ricardo

Respuestas a la pregunta(4)

Su respuesta a la pregunta