【发布时间】:2018-01-19 15:40:24
【问题描述】:
我正在尝试与返回简单 JSON 整数数组的 Rest 服务通信,例如
[1, 2, 3, 4]
我有以下代码通过 WebClient 拨打电话:
client.get()
.uri("/achievements")
.retrieve()
.bodyToFlux<Int>()
.doOnNext { println(it) }
.doOnError { it.printStackTrace() }
.blockLast()
然而,Spring 给我一个空的 Flux。如果我用bodyToMono<List<Int>> 替换bodyToFlux 调用,那么Spring 能够按预期反序列化响应。缺点是我必须手动将其更改回 Flux 并带有冗余 flatMapIterable { it }
我是否遗漏了什么或者bodyToFlux 和bodyToMono 仅用于Jackson POJO?
【问题讨论】:
-
您使用的是哪个版本的 Spring Framework?这可能与此问题有关:jira.spring.io/browse/SPR-16166
-
谢谢!这个问题正是我的问题所在。我目前正在使用 5.0.2,因为那是稳定版本。我尝试使用 5.0.3 快照,但似乎还没有修复。如果您不介意添加您的评论作为答案,我可以标记它并关闭问题。
-
这已在 12 月修复 - 如果它仍然不适合您,那么这是一个不同的问题。你能在jira.spring.io 上创建一个新问题吗?
-
深入挖掘,我意识到我的问题略有不同。您链接的问题仅解决标量顶级值。我的问题是由标量数组引起的。我会做一个新的问题。
-
创建了一个新工单和一个示例项目。 jira.spring.io/browse/SPR-16407
标签: java spring kotlin spring-webflux