我們正在與第三方進行整合,第三方發送xml的內容類型標頭爲text/html。我們計劃使用Spring的RestTemplate將其映射到我們從xsds生成的類,但RestTemplate無法找到適合內容使用的轉換器。第三方拒絕修復內容類型,因爲它可能會破壞其他合作伙伴的整合。強制使用XmlConverter的Spring RestTemplate
Spring的RestTemplate有沒有辦法強制它使用特定的轉換器? 我們基本上只是在做以下幾點:
RestTemplate restTemplate = new RestTemplate();
XmlClass xmlClass = restTemplate.getForObject("http://example.com/", XmlClass.class);
,並獲得以下異常:
org.springframework.web.client.RestClientException:無法提取 響應:沒有合適的HttpMessageConverter發現響應鍵入 [XmlClass]和內容類型[text/html的;字符集= ISO-8859-1]在 org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84)
我試着用攔截器更改accept頭,以鼓勵他們使用正確的頭,但那不起作用。 – Nathanial
當然,我也會嘗試。我的意思是在響應回來之後擺弄* response *頭部。 – artbristol
我們通過將附加消息轉換器添加到接受MediaType.TEXT_HTML的restTemplate來解決問題。這是不理想的,因爲它創建了一個冗餘的jaxb消息轉換器,但它的工作原理 - 我試圖在答案中添加代碼,但它不會讓我,因爲我沒有代表。 – Nathanial