我有一个xml,包括这个。
<channel id="myDataChannel"></channel>
<http:outbound-gateway
request-channel="myDataChannel"
url="{url}/myApi/getData/{id}"
expected-response-type="com.api.dto.Data"
http-method="GET"
rest-template="myRestTemplate">
<http:uri-variable name="url" expression="headers.url" />
</http:outbound-gateway>
而在java代码中是这样的。
MessagingTemplate myTemplate = new MessagingTemplate();
Message<?> getDataReply = null;
Data dataDto = null;
Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
.build();
getDataReply = template.sendAndReceive(myDataChannel, requestMsg);
return dataDto = (Data) getDataReply.getPayload();
这里是我的问题,如何在java代码的URL中path id与payload,有一个额外的标签,我应该添加到XML的out-bound-gateway?
你的问题不清楚,但你需要这样的东西
Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
.setHeader("url", ...)
.setHeader("id", ...)
.build();
和
<http:uri-variable name="id" expression="headers.id" />
或者,如果id是有效载荷的一个属性
Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
.setHeader("url", ...)
.build();
和
<http:uri-variable name="id" expression="payload.id" />