Mit this post als Referenz Ich habe eine nackte Knochen Jersey Controller-Methode für POST-Anrufe, die wie folgt aussieht:FAIL_ON_UNKOWN_PROPERTIES nicht wie auf Jersey POST erwartet funktioniert
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createVisit(Visit newVisit) {
LOGGER.info("Creating visit");
this.visits.add(newVisit);
return Response.ok(newVisit)
.build();
}
Hier sind die Felder auf meinem Besuch Objekt (Konstrukteuren und Getter/Setter weggelassen, weil ich nicht glaube, sie sind hier relevant - ich kann sie hinzufügen, wenn sie hilfreich sein würde):
public class Visit {
private VisitId id;
private AthleteId athleteId;
private CustomerId customerId;
private StoreId storeId;
private Instant createdUtc;
private Instant lastModifiedUtc;
}
wenn ich pass in gültig Visit Objektfelder im JSON-Format in der Anfrage Körper, sehe ich das Visit-Objekt erfolgreich in der Antwort wie erwartet ausgefüllt. Wenn ich jedoch Felder, die nicht Teil des Visit-Objekts sind, dem Anfragetext hinzufügen, scheinen sie ignoriert zu werden.
Ich habe eine Reihe von Beiträgen gesehen, die versuchen, herauszufinden, wie die FAIL_ON_UNKNOWN_PROPERTIES
Eigenschaft zu deaktivieren, aber ich habe das gegenteilige Problem zu haben. Mein Verständnis ist, dass standardmäßig auf true gesetzt ist, aber in diesem Fall würde ich erwarten, einen Fehlerantwortcode (500?) Zu erhalten, wenn das JSON-Objekt im Anfragetext nicht mit dem Objekt übereinstimmt, das ich an meine POST-Methode übergebe . Irgendwelche Ideen, was mir hier fehlt?
abgeholt werden. Sollte ich dies noch tun müssen, wenn FAIL_ON_UNKNOWN_PROPERTIES auf True gesetzt werden soll? Ich denke, ich erinnere mich, dass das die Standardeinstellung ist (den Link konnte ich gerade nicht finden). Muss ich noch einen ContextResolver hinzufügen, um diesen Wert explizit auf true zu setzen? – DanHam
[Standardwert ist wahr] (https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES) - um fehlzuschlagen –
Danke für den Link - so überlegt dass es standardmäßig aktiviert ist, sollte ich nicht eine 'JsonMappingException' erhalten, wenn ich diesen Endpunkt mit einem Anfragetext treffe, der nicht mit meinem Visit-Objekt übereinstimmt? – DanHam