5
我必須使用postForObject()
方法將JSON數據從一種服務方法發送到另一種服務方法。 我在this link上看到RestTemplate
上的一個例子。需要關於RestTemplate postForObject()方法的幫助
postForObject()
方法有以下格式:
User returns = rt.postForObject(uri, u, User.class, vars);
或者
User returns = rt.postForObject(uri, u, User.class);
我想知道的是,使用postForObject()
的方法,如果我們實現服務的方法來接受User
對象,以後怎麼它會看起來像?
在我的項目,我有這樣的代碼
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
String uri = "http://testcode.com/myapp/api/launchservices";
ServiceRequest request = new ServiceRequest();
request.setId(UUID.randomUUID().toString());
....
我在這行收到錯誤:
ServiceRequest req = restTemplate.postForObject(uri, request, ServiceRequest.class);
在執行這一點,我得到這個錯誤信息:
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:537)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:493)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:452)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:302)
我的實施方法是:
@RequestMapping(value = "/launchservices", method = RequestMethod.POST)
@ResponseBody
public boolean launchServices(@PathVariable ServiceRequest request) {
System.out.println("Request: "+request.toString());
return true;
}
如何擺脫這種情況?什麼是URI?
你用這個乾淨的例子爲我節省了很多時間。這是一個問題的答案,但我以此爲例。你爲我節省了很多時間,謝謝你。沒有壓力,我無法觀看日本武術比賽。 – giannisapi