2017-10-05 8 views
1

Ich versuche, die optionale Klasse mit Jersey-Client zu bekommen. Wenn der Remote-Server Optional.empty() zurückgibt, erhalte ich diesen Fehler.So erhalten Sie optionale Klasse mit Trikot-Client

Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "present" (class java.util.Optional), not marked as ignorable 

Mein Code

ObjectMapper mapper = new ObjectMapper(); 
mapper.registerModule(new Jdk8Module()); 

Client client = ClientBuilder.newClient().register(new JacksonJsonProvider(mapper)); 
Optional<MyType> myType = client.target(TARGET_URL) 
        .path(PATH) 
        .request() 
        .get(Optional.class); 

Meine verknüpften Abhängigkeiten sind als

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.9.1</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>2.9.1</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jdk8</artifactId> 
    <version>2.9.1</version> 
</dependency> 

EDIT

Die Anwendung, die eine Feder auf dem Remote-Server ausgeführten Boot-App ist. Ich habe jackson-datatype-jdk8 Abhängigkeit von der App hinzugefügt. Danach wurde die nicht erkannte Feld Ausnahme gelöst, aber das Rückgabeobjekt ist null. Zuvor war der Postbote das folgende Ergebnis zurückgegeben

{ 
    "present": false 
} 

Aber jetzt

null 
+1

das? https://github.com/FasterXML/jackson-modules-java8 – Eugene

+1

@Eugene Leider hat es nicht funktioniert – Rhododendron

Antwort

0

Sie können den @JsonInclude(Include.NON_EMPTY) machen zu annotieren ein solches abgelegt.

Wert, dass nur Objekte anzeigt, die Werte haben, die Werte, die null sind oder was leer betrachtet sind nicht zu enthalten sein.

+0

Ich habe diese Annotation in meiner Klasse oberste Ebene sowohl Client und entfernt, aber ich bekomme immer noch den Fehler – Rhododendron

+0

Wurden Sie in der Lage zu lösen der Fehler? – bewithaman

Verwandte Themen