java Spring集成WebFlux。outboundGateway永远不会被调用
我有一个简单的流程:
return IntegrationFlows.from(ARTIFACTORY_INPUT_CHANNEL)
.handle(WebFlux.outboundGateway(url)
.expectedResponseType(new ParameterizedTypeReference<Mono<ArtifactorySearchResponse>>() {
})
.httpMethod(GET)
.encodeUri(true))
.transform(new ArtifactorySearchResponseTransformer())
.channel(ARTIFACTORY_OUTPUT_CHANNEL)
.get();
还有一个简单的测试:
outputChannel.subscribe(mockMessageHandler);
inputChannel.send(new GenericMessage<>("test"));
verify(mockMessageHandler).handleMessage(argThat(m -> {
Object payload = m.getPayload();
return payload instanceof String
&& payload.toString().equals("businesses.20171203.json.gz");
}));
这会一直失败,因为mockMessageHandler
从未被调用。我看了看,看了看,看了看,但是测试WebFlux.outboundGateway
的例子完全没有。Spring集成确实有很多例子,但这些几乎是无用的,因为它们
- 都是XML格式的(是的,2005年在打电话)
- 不要报道
WebFlux
李>
# 1 楼答案
一如既往,查看Spring源代码通常比等待帮助更有效率。事实证明,我遗漏了几件事: