0

次のように、APIのxmlおよびjson応答を解決するようにspringを構成しました。

<!-- oxm integration -->
    <bean id="objectXmlMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller" />

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="ignoreAcceptHeader" value="false" />
            <property name="favorPathExtension" value="true" /> 
        <property name="mediaTypes">
            <map>
                <entry key="xml"  value="application/xml" />
                <entry key="json" value="application/json" />
            </map>
        </property>
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
                <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
                    <property name="marshaller" ref="objectXmlMarshaller" />
                </bean>
            </list>
        </property>
    </bean>

残念ながら、springはapplication / *+xmlでxml応答を返します。Chromeはそのような拡張機能を開くことができず、ウィンドウに送信して開くことができないようです(したがって、ブラウザーで応答を表示するのではなく、ウィンドウを介して開く必要があります)。

構成されたapplication/xmlの代わりにapplication/* + xmlを返す理由を誰かが知っていますか?

そうでない場合は、Chromeに強制的に表示させる方法を知っている人はいますか?

ありがとう!

4

1 に答える 1

0

これを解決するために私が見つけた唯一の方法は、必要なものを使用してコントローラーを直接マップすることでした。

@RequestMapping(produces = { "application/json", "application/xml" })

あまりにも悪い春はあなたがグローバルな定義を持つことを可能にしません。

于 2012-09-30T08:16:50.980 に答える