Scala 期货的新手我尝试调用一个网络服务,比如
wsClient.url(baseUrl + url).withHeaders("Content-Type" -> "application/json").post(dataForR).flatMap(parseOutlierResponse)
使用ply-ws
库
我验证并映射响应如下https://gist.github.com/geoHeil/943a18d43279762ad4cdfe9aa2e40770
主要的是:
Await.result(callAMethodCallingTheFirstSnippet, 5.minutes)
奇怪的是,这在 repl 中工作得很好。但是,如果通过运行sbt run
我会得到一个 NullPointer 异常。我已经手动验证了 JSON 响应。它像微风一样验证。甚至映射效果也很好。但是,我使用的期货肯定有问题。但我不确定出了什么问题。似乎在已经有结果之前调用了 flatMap 方法。
有趣的是,如果我不等待结果,则没有空指针异常,但解析的结果会正确显示(但是,程序不会退出)。但是在我真正使用此代码的地方,我不知何故需要等待成功完成以进一步处理它。
您将在下面找到问题的说明