Why restTemplate.put() throws “HttpClientErrorException: 404 Not Found”

时间:2023-03-09 16:00:59
Why restTemplate.put() throws “HttpClientErrorException: 404 Not Found”

I make a put request

RestTemplate restTemplate = new RestTemplate();
restTemplate.put(new URI("http://localhost:8080/test"), dto);

which successfully hits the rest endpoint

@RequestMapping(value = "/test", method=RequestMethod.PUT)
public void test123(@RequestBody DTO dto) {
System.out.println("phone:"+dto.getPhone());
}

but the "put" method on the client throws exception, even though the server is hit successfully and I don't expect return value.

Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 404 Not Found
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:589)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:547)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:518)
at org.springframework.web.client.RestTemplate.put(RestTemplate.java:394)
at com.my.Main.main(Main.java:45)

查看连接路径是否正确。