2012-07-27 307 views
0

如下我已經配置春天來解決我們的API XML和JSON響應:春顯示應用程序/ * + XML而不是應用程序/ XML

<!-- 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> 

不幸的是,春天返回與應用程序/ * + xml的XML響應。看起來chrome不能打開這樣的擴展並將它發送到窗口來打開它們(所以不是在瀏覽器上看到響應,而是通過窗口打開它)。

有誰知道它爲什麼返回應用程序/ * + XML而不是配置的應用程序/ XML?

如果不是,任何人都知道如何強制鉻顯示它?

謝謝!

回答

0

我發現解決這個唯一的辦法是直接映射與所需的控制器:

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

太糟糕了,春天不會讓你有一個全球性的定義。

相關問題