我的应用程序可以使用两个 Web 服务之一,我们称它们为 WS A 和 WS B。两者都包含相同的接口。
我想对 HTTP 标头和请求通道执行一些逻辑。WS B 应该只在某些请求通道上使用。为了决定使用哪个通道,我创建了一个 Java 类,它将请求通道作为字符串参数。
<http:outbound-gateway request-channel="XXXXX"
url-expression="'${EL EXP}'" http-method="GET"
extract-request-payload="true" expected-response-type="java.lang.String"
charset="UTF-8" reply-timeout="3000" reply-channel="XXXXX">
</http:outbound-gateway>
然后我读到在初始化上下文时会评估 url 表达式。
来源: http: //forum.springsource.org/showthread.php?113446-Usage-of-expressions-in-http-namespace-element-url
<int-http:outbound-gateway request-channel="requestChannel"
url="dummy"
http-method="GET" extract-request-payload="true" expected-response-type="java.lang.String"
charset="UTF-8" reply-timeout="3000" reply-channel="sysLoggerRequestChannel">
<int-http:uri-variable name="teststring" expression="test"/>
<int-http:uri-variable name="url" expression="evalClass.getDestinationForChannel(teststring)"/>
</int-http:outbound-gateway>
这种方法的问题是 int-http:uri-variable 中的表达式似乎不是评估。
这一切让我相信我采取了错误的方法。任何帮助将不胜感激。