Spring Integration HTTP入站适配器方法名称?

时间:2012-07-13 20:57:25

标签: http spring-integration

是否可以将方法名称映射到带有int-http:inbound-gateway的标头?例如:

<int-http:inbound-gateway request-channel="requests" reply-channel="replies"
    supported-moethds="GET,PUT"
    path="/user">
    <int-http:header name="requestMethod" expression="#requestMethod"/>
</int-http:inbound-gateway>

<!-- ... -->

<int:header-value-router input-channel="requests" header-name="requestMethod>
    <int:mapping value="GET" channel="getUserRequests"/>
    <int:mapping value="PUT" channel="addUserRequests"/>
</int:header-value-router>

此外,我看到使用#requestParams的示例,但2.1的javadoc提到了#queryParameters,我在官方文档页面中没有看到其中任何一个的文档。你们知道一个好的资源,不仅描述了SpEL如何解析表达式,还有哪些字段可用于它?我所能说的就是我有头文件,有效负载,#pathVariables,以及#requestParams或#queryParams,以及我在当前上下文中定义的任何其他@beans。

提前致谢!

1 个答案:

答案 0 :(得分:1)

该方法始终映射到标题

... http_requestMethod=POST ...


Message<?> message = messageBuilder
    .setHeader(org.springframework.integration.http.HttpHeaders.REQUEST_URL, request.getURI().toString())
    .setHeader(org.springframework.integration.http.HttpHeaders.REQUEST_METHOD, request.getMethod().toString())
    .setHeader(org.springframework.integration.http.HttpHeaders.USER_PRINCIPAL, servletRequest.getUserPrincipal())
    .build();

javadoc错了。另外两个变量是#requestParams和#pathVariables。