最近在 Spring Boot 应用程序(在我的情况下不是 Web 应用程序)中使用 feign 客户端时,我看到客户端无法正确反序列化对象。正如一位同事向我指出的那样 - 原来是由于 HAL 模块注册是由 @ConditionalOnWebApplication 在 hatos 的spring 自动配置上有条件地保护的
知道这一点后,可以制定解决方案来克服这一点
- 我们可以向包含已注册 HAL 模块的 ObjectMapper 的 feign 客户端添加一个解码器(一小段代码,但仍然需要额外的工作)
- 转换为 Web 应用程序 - 我觉得这根本不是一个好的解决方案,不应该在使事情开箱即用的要点上完成。
那么现在知道这个有没有人遇到过这个?我觉得有一个 Jpa 休息资源的假客户端是一个有效的场景。
下面是一个分页的服务器响应示例。注意下面收到的响应中的元数据内容(有一个结果),但是当我尝试读取分页资源的内容时没有修复它会变成空/空
{
"_embedded": {
"emails": [{
"id": "1a5edced-c165-4209-9d1c-9549b6841d13",
"tenantId": "a56982a6-6e12-4fe6-95d1-b735cedda2dc",
"email": "whatever@whatever.com",
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c- 9549b6841d13"
},
"email": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c-9549b6841d13"
}
}
}]
},
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/search/whatssss?email=whatever%40whatever.com"
}
},
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}