他のよく似た質問をしましたが、何も私のために働いていません。デフォルトによる応答として春mvc:xmlからjsonへの既定応答形式の変更
すべての私のAPIの戻りJSONに:ので、いくつかのXML APIの
は、私はなし」はデフォルトで今すぐをジャクソン-XML
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
を追加する必要がありましたすべての応答はXMLです。
デフォルトのレスポンス形式です。
ここドキュメントに記載されているように:
https://spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc
私は、次の設定を実装:
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false).favorParameter(true).parameterName("mediaType").ignoreAcceptHeader(true)
.useJaf(false).defaultContentType(MediaType.APPLICATION_JSON)
.mediaType("xml", MediaType.APPLICATION_XML).mediaType("json", MediaType.APPLICATION_JSON);
}
ケース1:私はignoreAcceptHeader(true)
を作るならば、すべてがJSONであってもXML JSONを返すAPI。
ケース2:の場合、ignoreAcceptHeader(false)
のデフォルト値はXMLです。私はこのように私のAPIの外観言及するのを忘れ
:
@RequestMapping(value = "/getXml", method = RequestMethod.GET)
public ResponseEntity<String> getXml(HttpServletRequest request)
throws JAXBException {
return returnXml();
}
を私はかなり私が欲しいのは(AcceptHeaderなし)デフォルトはJSONであるべきで、ここでは失われています。 (APIはStringとしてXMLを返します)
Accept Header: "Application/xml"が定義されている場合、応答はXMLでなければなりません。
アドバイスは非常に役に立ちます。
ありがとうございました。
構成によれば、あなたが「MEDIATYPE」パラメータと戻り値のメディアタイプを制御することができます。/getXmlのようなものを試しましたか?mediaType = xml – Stan
@Stan:いいえ、私はRequestMappingを変更できませんが、まだ結果を見るように試みます。 – Roxy
リクエストマッピングの注釈ではありません。あなたがSpringに.parameterNameこのパラメータを使用してメディアタイプをチェックし、サーバー側に変更がないようにします。 – Stan