2016-09-23 113 views
0

我是新來的春天休息時,我試圖來從Web服務的XML,但它下面的代碼執行後扔InvalidMediaTypeException:春RestTemplate拋出InvalidMediaTypeException

restTemplate.getForObject("http://www.dictionaryapi.com/api/v1/references/learners/xml/{word}?key={key}",String.class,uriVariables); 

WebService的返回的XML文檔,我想首先它可能是問題,但另一個WebService(該URL不包含'xml'作爲路徑)很好。

堆棧跟蹤:

Exception in thread "main" org.springframework.http.InvalidMediaTypeException: Invalid mime type "xml": does not contain '/' 
at org.springframework.http.MediaType.parseMediaType(MediaType.java:385) 
at org.springframework.http.HttpHeaders.getContentType(HttpHeaders.java:722) 
at org.springframework.web.client.HttpMessageConverterExtractor.getContentType(HttpMessageConverterExtractor.java:114) 
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:85) 
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:835) 
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:819) 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:599) 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557) 
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:384) 

那麼,怎樣才能在我自己的URL路徑交換WebServices的數據,包含單詞 「XML」。

+0

我想,但我可能是錯的,你得到的堆棧不是由URI中的「xml」引起的,我們能否看到「webService」方法? – 2016-09-23 11:34:20

+0

突然,它是第三方WebService,所以如果我在http://www.dictionaryapi.com/api/v1/references/learners/xml/apple?key=4d0a2da0-791e-4616-986f-2b26da530f04上提出請求,我收到此結果,例如「http://www.thomas-bayer.com/sqlrest/CUSTOMER/」上的請求有效。 –

+0

URL中的xml參數可能不是這裏的問題。在uri變量中傳遞的服務或數據應該存在一些問題 – Nimesh

回答

1

這裏的問題是服務正在返回響應到您的查詢與一個混亂的內容類型,特別是xml。你需要配置Spring來處理,因爲理智的人(和服務)使用application/xml來代替。檢查出this答案爲自定義MediaType設置。

相關問題