我刚刚遇到一个令我困惑的问题。我很满意你能给出的每一条建议,即使它是关于如何获得更多的见解(即记录)。
我使用spring boot 2.0.0M1(由start.spring.io生成)和被动(netty支持)org.springframework.web.reactive.function.client.WebClient
。
当调用刚刚返回JSON对象的旧的非响应服务时,即使被调用的服务完全响应(比较日志),WebClient也不会发出任何事件。
2017-05-29 17:33:30,016 | reactor-http-nio-2 | INFO | | onSubscribe([Fuseable] FluxOnAssembly.OnAssemblySubscriber) | myLogClass:145 |
2017-05-29 17:33:30,016 | reactor-http-nio-2 | INFO | | request(unbounded) | myLogClass:145 |
2017-05-29 17:33:30,016 | reactor-http-nio-2 | DEBUG | | onSubscribe([Fuseable] FluxOnAssembly.OnAssemblySubscriber) | client:125 |
2017-05-29 17:33:30,016 | reactor-http-nio-2 | DEBUG | | request(unbounded) | client:125 |
在调试这个问题时,我发现一些奇怪的东西让我觉得我只是以错误的方式使用这个实现:我在nettys池/通道处理中看到了来自另一个服务(我之前调用过)的URL(将添加我后来发现的类。
其他观察:
所以到目前为止看似不太可能的想法:
正如我在开始时所说:我感谢每一个帮助,当然我会添加你要求的任何信息来重现这个bugger。 关于如何为此编写测试的任何指针也是受欢迎的!
从信息开始:这就是我如何使用WebClient作为最小样本(我知道 - 我不打算以阻塞的方式使用它)。
return WebClient.create(serviceUri)
.put()
.uri("/mypath/" + id)
.body(fromObject(request))
.accept(APPLICATION_JSON)
.header(HttpHeaders.CONTENT_TYPE, APPLICATION_JSON_VALUE)
.header(HttpHeaders.COOKIE, createCookie())
.retrieve()
.bodyToMono(Response.class)
.log("com.mypackage.myLogClass", Level.ALL)
.block();