Http inbound-gateway 使用可选的请求参数

Http inbound-gateway using optional request parameters

我想知道我是否遗漏了与 http inbound-gateway 有关的内容。我想使用可选参数执行搜索(结果将是 json)。以下是已定义网关的示例:

<int-http:inbound-gateway id="inboundSearchRequestGateway" supported-methods="GET, POST" request-channel="searchRequest" reply-channel="searchResults"
  mapped-response-headers="Return-Status, Return-Status-Msg, HTTP_RESPONSE_HEADERS" view-name="/test123" path="/search" reply-timeout="50000"
  error-channel="errorChannel">
   <int-http:header name="param1" expression="#requestParams.param1"/>
   <int-http:header name="param2" expression="#requestParams.param2"/>
</int-http:inbound-gateway>

目前我必须提供两个参数才能使搜索工作,否则请求不会传递到请求通道。

有问题的搜索目前没有使用参数。

这将 return 结果: http://localhost/test123/search?param1=123&param2=234

虽然这 return 什么也没有: http://localhost/test123/search?param1=123

是否有任何替代方法可以将请求参数映射到集成消息 headers 以进一步处理链下的问题?这可能是一个错误吗?

我正在使用 Spring 集成 4.1.2,Windows,Java 7.

谢谢。

T

因为 requestParamsMap,所以使用 #requestParams['param2'] 作为可选参数。使用点分语法要求参数存在。