Ich habe einen Rest-Aufruf, der einige Parameter als FormDataParam nimmt. Wenn ich das Objekt EngineConfigMeta in JSON-String an den Rest-Aufruf vom Postboten übergebe, wird das Objekt auf der Rescallebene nicht richtig deserialisiert.FormDataParam Object übergeben als JSON-String in Post-Anfrage wird nicht richtig deserialisiert
Rast-call
@Path("/add-config")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response addConfig(@FormDataParam("config") EngineConfigMeta config,
@FormDataParam("file") InputStream configFileInputStream,
@FormDataParam("file") FormDataContentDisposition cdh)
{
return Response.ok(Response.Status.OK).entity(buildJson(config.getVersion())).build();
}
EngineConfigMeta.java
public class EngineConfigMeta {
private String tenantName;
private long version;
EngineConfigMeta(String tenantName, long version) {
this.tenantName = tenantName;
this.version = version;
}
..getters and setters
}
Dies ist, wie ich die Parameter am Übergang Anruf mit Postbote zur Ruhe - Postman screenshot
Das Problem ist jetzt, wenn ich den Code der Ruhe Anruf debuggen, ich alle JSON-String auf EngineConfigMeta pojo nur auf eine Eigenschaft zugewiesen bekommen -
EngineConfigMeta{tenantName={"tenantName": "abc", "version": 2}, version=0}
Wie Sie oben, dass das gesamte Objekt JSON-String zugewiesen sehen ist zur Eigenschaft tenantName. Die Deserialisierung ist also hier nicht korrekt.
Bitte helfen Sie mir.
Danke für die Antwort, habe ich versucht bereits, dass vor und es scheint zu arbeiten. – thedevd