当我尝试为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" />
答案 0 :(得分:0)
这个必须工作:
<int:default-header name="X-MW-getId" expression="@requestData.id" />
它必须绝对是expression
属性,并且如果您希望从那里访问requestData
bean,那么应该使用@
。 getter确实可以用作属性访问器。