0

我有包含这个的 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 中路径 id,我应该在 out-bound-gateway 中添加一个附加标签到 XML 中吗?

4

1 回答 1

0

你的问题不清楚,但你需要类似的东西

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" />
于 2020-06-02T13:36:51.503 回答