spring-cloud-Client vortäuschen und @RequestParam mit Datum geben
Dieser Zeit arbeitete ich mit Deklarativen REST-Client, Vortäuschen, in einigen Spring-Boot-App.
Was ich erreichen wollte, ist der Aufruf einer meiner REST-API ' s, die wie folgt aussieht:
@RequestMapping(value = "/customerslastvisit", method = RequestMethod.GET)
public ResponseEntity customersLastVisit(
@RequestParam(value = "from", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date from,
@RequestParam(value = "to", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date to) {
Wie Sie sehen können, die API akzeptiert Anrufe mit von-und bis-Datum params, formatiert wie (yyyy-MM-dd)
Fordern, dass die API, die ich vorbereitet habe folgende Stück @FeignClient
:
@FeignClient("MIIA-A")
public interface InboundACustomersClient {
@RequestMapping(method = RequestMethod.GET, value = "/customerslastvisit")
ResponseEntity customersLastVisit(
@RequestParam(value = "from", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date from,
@RequestParam(value = "to", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date to);
}
In der Regel, fast copy-paste. Und jetzt irgendwo in meinem boot App, nutze ich das:
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
ResponseEntity response = inboundACustomersClient.customersLastVisit(formatter.parse(formatter.format(from)),
formatter.parse(formatter.format(to)));
Und was ich zurück bekomme ist, dass
verschachtelte Ausnahme ist
org.springframework.core.konvertieren.ConversionFailedException: Failed to
konvertieren von type [java.lang.String] zu geben
[@org.springframework.web.binden.Anmerkung.RequestParam
@org.springframework.format.Anmerkung.DateTimeFormat-java.util.Datum]
für den Wert "Sun May 03 00:00:00 CEST 2015';nested exception is java.lang.IllegalArgumentException: Nicht
parse 'Sun May 03 00:00:00 CEST 2015'
So, die Frage ist, was mache ich falsch mit dem Wunsch, dass es nicht analysieren, um "Datum-only" - format, bevor Sie an meiner API? Oder vielleicht ist es ein reines Vortäuschen lib problem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie erstellen und registrieren Sie einen vortäuschen formatter anpassen das Datum format
Eine weitere einfache Lösung ist die Verwendung von Standard-interface-Methode für Datum-zu-String-Konvertierung wie