J'essaie d'obtenir la classe optionnelle avec le client de Jersey. Lorsque le serveur distant renvoie Optional.empty()
, j'obtiens cette erreur.Comment obtenir la classe facultative avec le client de maillot
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "present" (class java.util.Optional), not marked as ignorable
Mon 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);
Mes dépendances liées sont
<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
L'application qui fonctionne sur le serveur distant est une application de démarrage de printemps. J'ai ajouté jackson-datatype-jdk8 dépendance sur l'application. Après cela, le exception de champ non reconnu résolu mais l'objet de retour est null. Avant cela, le postier a été renvoyé le résultat suivant
{
"present": false
}
Mais maintenant
null
cela? https://github.com/FasterXML/jackson-modules-java8 – Eugene
@Eugene Malheureusement, cela n'a pas fonctionné – Rhododendron