我正在使用 ContentNegotiatingViewResolver 使 .json 返回 json 格式数据, .xml 返回 xml 格式数据。ContentNegotiatingViewResolver 配置如下:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="defaultContentType" value="text/html" />
<property name="favorParameter" value="true"/>
<property name="ignoreAcceptHeader" value="true" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<!-- JSON View -->
<bean
class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
</bean>
<!-- JAXB XML View -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name= "packagesToScan" value= "com.legjq.jing.model.nosql.sequoiadb" />
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
当我使用 id.json 时,它可以返回正确的数据。日志显示:org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor - 使用 [org.springframework.http.converter.json 将 [****] 写为“application/json;charset=UTF-8”。映射Jackson2HttpMessageConverter@37771ee5]
但是当我使用 id.xml 时。它报告 406 错误 此请求标识的资源只能生成具有根据请求“接受”标头不可接受的特征的响应。日志显示:org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - 从处理程序 [***] 解决异常:org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示
有没有我想念的步骤?