在SpringIntegration中追加标头值

时间:2018-03-14 19:42:59

标签: java spring spring-integration

当我尝试为url-expression分配一个值时(工作正常):

<bean id="requestData"    class="net.model.RequestData"/>
<int-http:outbound-gateway request-channel="requestChannel"
        url-expression="@requestData.getCompleteUrl()" http-method-expression="@requestData.getRequestMethod()"
        expected-response-type="java.lang.String" header-mapper="headerMapper"
        charset="UTF-8" reply-timeout="5000" reply-channel="responseChannel">
    </int-http:outbound-gateway>

但是当我尝试在Header中分配一个值时,它会抛出一个Exception(下面没有工作):

<int:gateway id="requestGateway" service-interface="net.model.RequestData"  default-request-channel="jsonTransformationChannel">
        <int:default-header name="X-MW-getId" value="@requestData.getId() />
         <int:default-header name="X-Srcsys" value="ttsim" />
        <int:default-header name="content-type" value="application/json" />
        <int:default-header name="Accept" value="application/json" />
    </int:gateway>

我尝试了以下几行,但它没有工作:

<int:default-header name="X-MW-getId" expression="#requestData.id" />

1 个答案:

答案 0 :(得分:0)

这个必须工作:

<int:default-header name="X-MW-getId" expression="@requestData.id" />

它必须绝对是expression属性,并且如果您希望从那里访问requestData bean,那么应该使用@。 getter确实可以用作属性访问器。