У меня есть метод в Spring rest service.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. Но мне может понадобиться передать сложные типы данных в качестве параметров позже. Каковы способы достижения этого. У меня есть googled, и какой-то вариант, похоже, пишет мои собственные конвертеры. Как я должен начать решение этой проблемы.
В следующей строке: map.add ("RequestId", RequestId); RequestId объект более сложный, чем строка? Можем ли мы увидеть URL-адрес? Спасибо! – java1337
@ java1337 RequestId в настоящее время является просто строкой, но мне может потребоваться опубликовать пользовательские типы данных или объект даты другими способами. – d123