我想要與澤西客戶端的可選類。當遠程服務器返回Optional.empty()
時,出現此錯誤。如何獲得與澤西客戶端的可選類
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "present" (class java.util.Optional), not marked as ignorable
我的代碼
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);
我相關的依賴關係爲
<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>
編輯
的應用程序在遠程服務器上運行的是彈簧啓動的應用程序。我添加了jackson-datatype-jdk8依賴於應用程序。在此之後,無法識別的字段異常解決,但返回對象爲空。在此之前,郵遞員返回以下結果
{
"present": false
}
但現在
null
這個? https://github.com/FasterXML/jackson-modules-java8 – Eugene
@Eugene不幸的是,它沒有工作 – Rhododendron