我在Spring rest服務中有一個方法。具有整數值的請求參數的Spring RestRemplate postforobject
@RequestMapping(value = "test/process", method = RequestMethod.POST)
public @ResponseBody MyResponse processRequest(String RequestId, int count)
我正在使用Spring RestTemplate調用此服務。
RestTemplate restTemplate = this.getRestTemplate();
MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
map.add("RequestId", RequestId);
map.add("count", count);
restTemplate.postForObject(url, map,MyResponse.class);
當我嘗試調用客戶端的方法我得到沒有合適的HttpMessageConverter發現請求類型[java.lang.Integer中]
org.springframework.http.converter.HttpMessageNotWritableException: Could not write request: no suitable HttpMessageConverter found for request type [java.lang.Integer]
at org.springframework.http.converter.FormHttpMessageConverter.writePart(FormHttpMessageConverter.java:310)
at org.springframework.http.converter.FormHttpMessageConverter.writeParts(FormHttpMessageConverter.java:270)
at org.springframework.http.converter.FormHttpMessageConverter.writeMultipart(FormHttpMessageConverter.java:260)
at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:200)
at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:1)
at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:596)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:444)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:409)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:287)
的例外,我知道的方法之一是以String形式傳遞所有參數。但我可能需要稍後將複雜的數據類型作爲參數傳遞。 什麼是實現這一目標的方法。 我google了一些選項似乎寫我自己的轉換器。我應該如何着手解決這個問題。
在以下行中: map.add(「RequestId」,RequestId); 是RequestId比字符串更復雜的對象嗎? 我們可以看到網址嗎? 謝謝! – java1337
@ java1337 RequestId當前只是一個字符串,但我可能需要在其他方法中發佈自定義數據類型或日期對象 – d123