Warum restTemplate.put() throws "HttpClientErrorException: 404 Nicht Gefunden"
Ich eine put-Anfrage
RestTemplate restTemplate = new RestTemplate();
restTemplate.put(new URI("http://localhost:8080/test"), dto);
erfolgreich, trifft Sie den rest-Endpunkt
@RequestMapping(value = "/test", method=RequestMethod.PUT)
public void test123(@RequestBody DTO dto) {
System.out.println("phone:"+dto.getPhone());
}
aber die "put" - Methode auf dem client wirft Ausnahme, obwohl der server ist der Treffer erfolgreich und ich nicht
erwarten Rückgabewert.
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)
- sind Sie in der Lage, Treffer-URL - localhost:8080/test aus dem browser ?
- Könnte man auch ganze @Controller-Quelle?
- Ich kann nicht treffen, es aus dem browser: HTTP-Status 405 - Request-Methode 'GET' nicht unterstützt
- Ich habe das problem gefunden, es stellt sich heraus, dass ich bin fehlt @ResponseBody auf test123(). Ich Irre durch die Veröffentlichung die Frage, die mit der annotation vorhanden, eigentlich war ich vermisse es, tut uns Leid.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist super alt, aber ein weiteres Update ist das hinzufügen einer @ResponseStatus annotation auf den controller und geben Sie HttpStatus.NoContent als Wert. Auf diese Weise sind Sie genau Rückgabe eines status und nicht zu sagen haben, die nichts (void) ist eine Antwort Körper.