我有一个反应核心WebClient可以发布到给定的endpoint。有效负载是JsonNodes的流量,内容类型是application/stream+json
JsonNode response = localEP.post().uri( "/createItem" )
.contentType(MediaType.APPLICATION_STREAM_JSON)
.body( BodyInserters.fromPublisher(itemData, JsonNode.class ))
.retrieve()
.bodyToMono( JsonNode.class )
.block();
在服务器端,我尝试了Spring Controller样式和Spring Web Reactive FunctionHandler来处理上述调用的负载,负载是一个流量。
@PostMapping(path = "/dev/jobad/dynamo", consumes = MediaType.APPLICATION_STREAM_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
public Flux<JsonNode> loadItems (@RequestBody Flux<JsonNode> items) {
items.subscribe(storage::add);
JsonNode response = new ObjectMapper().createObjectNode().put( "shady", "shade" );
return Flux.just( response );
}
返回到客户机总是ok,但是服务器报告通量的内容为空。如果我将(@requestbody flux
更改为(@requestbody JsonNode items
),那么有效负载将很好地接收到。WebClient日志似乎表明它已经将数据写入线路并处理了响应。但是,主体似乎是空的
Reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.web.server.ServerWebInputException: Response status 400 with reason "Request body is missing: public reactor.core.publisher.Flux<com.fasterxml.jackson.databind.JsonNode> com.talroo.rest.JobResource.loadJobs(reactor.core.publisher.Flux<com.fasterxml.jackson.databind.JsonNode>)"
Caused by: org.springframework.web.server.ServerWebInputException:
Response status 400 with reason "Request body is missing: public
reactor.core.publisher.Flux<com.fasterxml.jackson.databind.JsonNode>
我需要做什么才能将post的请求主体作为一个Flux来处理?
首先,我不认为Spring正式支持直接从控制器读/写JacksonJsonNode
实例。您的应用程序应该请求一个域对象或类似map
之类的东西。
在Jackson的模型中,jsonNode
表示JSON树中的任何节点--由于它是一棵树,您可以期望得到一个flux
节点,但显然能够得到根节点--这解释了您看到的行为。
所以我认为您的应用程序应该更多地依赖于更高级的类,并让Jackson为您反序列化它们。
注意,您的控制器实现也违反了一些规则:
我的建筑.分级是: 我试图通过allure命令行(CLI)在本地打开.json和.xml结果。诱惑报表打开,但为空:这是一个报表视图 我想是我的错误在分级依赖。我相当困惑,应该为JUnit5+Allure2+Gradle+Selenide+Java8使用哪些库和版本?
Java代码 谢谢
功能介绍 获取信息流分析报告数据,包括表格详情数据与趋势数据,所获取数据与 https://mtj.baidu.com 中报告数据一致 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/app/getDataByKey 此处仅列本接口特有参数,公共参数请参考报告级API说明 获取总计数据 参数名 参数类型 是否必须 描述 method string 是
extentX看起来是完美的解决方案,是一组测试结果。 然而,我已经按照所有的说明进行了操作,并将所有内容都设置好并运行起来,但测试信息似乎没有到达扩展页。 它是空的。我可以从仪表板上看到测试已经运行,但项目是默认的,单击它们不会显示任何信息,但我可以看到它正在获取一些数据,因为它显示了已经运行了多少测试以及通过了多少信息。 有什么明显的我做错了吗? 我可以看到标准的数据块报告工作得很好,但它似乎
使用指南 - 数据报告 - 流量分析 百度统计为您提供网站的流量、来源、页面、访客、转化、SEO等多种网站分析报告,支持多维度细分和自定义查看,帮助您进行SEM、SEO优化,提高转化率。 流量分析 网站流量趋势分析 实时访客报告简介 客户版屏蔽异常IP与访客 已屏蔽IP与访客的管理 访问时长的计算
我们所运行的环境(Heroku),超过30秒的请求将被中断。因此,我们的web服务器(Unicorn)被设置为在15秒后中止。我们注意到,当请求被中断时,似乎没有任何信息被记录到NewRelic。 提前感谢!