我们使用http出站适配器来发出http get请求,我们想要从属性文件中读取URL,因为它从envt变为envt。我们还使用消息有效负载向该url附加了一些其他路径,但是它给了我们这个错误消息"引起:java.lang.IllegalArgumentException:Map没有URL"的值。我们所需要的只是从属性文件中读取基本URL并生成带有效负载的最终URL。
这是我们的示例配置看起来像
<int-http:outbound-gateway request-channel="requestChannel"
url="${url}/{payload}"
http-method="GET"
expected-response-type="java.lang.String"
>
</int-http:outbound-gateway>
答案 0 :(得分:2)
实际上,您网址中的{payload}
是 URI变量,无法自动解析。看看它是如何工作的:
UriComponentsBuilder.fromUriString(uri).buildAndExpand(uriVariables)
这些URI变量的uriVariables
是Map
。
因此,在您的情况下,预期的配置必须如下:
<int-http:outbound-gateway request-channel="requestChannel"
url="${url}/{payload}"
http-method="GET"
expected-response-type="java.lang.String">
<int-http:uri-variable name="payload" expression="payload"/>
</int-http:outbound-gateway>
您可以在Reference Manual中找到更多信息。