1

我正在使用 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:找不到可接受的表示

有没有我想念的步骤?

4

0 回答 0