【发布时间】:2018-03-17 09:24:46
【问题描述】:
我正在尝试使用 jersey 客户端获取可选类。当远程服务器返回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>
编辑
在远程服务器上运行的应用程序是一个 Spring Boot 应用程序。我在应用程序上添加了 jackson-datatype-jdk8 依赖项。在此之后,无法识别的字段异常解决了,但返回对象为空。在此之前,邮递员返回如下结果
{
"present": false
}
现在
null
【问题讨论】:
-
@Eugene 不幸的是,它不起作用
标签: java java-8 optional jersey-client