我试图通过Spring Integration调用REST Web服务,即Spring Integration将充当REST Web服务的客户端。但是,我应该将params添加到ws url并添加json对象作为参数。 为此,我尝试了以下配置:
<int:enricher input-channel="inputChannel" request-channel="quakeinfotrigger.channel">
<int:property name="info" expression="payload"/>
</int:enricher>
<int-http:outbound-gateway id="quakerHttpGateway"
request-channel="quakeinfotrigger.channel"
url="http://ffff.ff/gg/rest/put/{tel_number}"
http-method="PUT"
expected-response-type="java.lang.String"
charset="UTF-8"
reply-timeout="5000"
reply-channel="quakeinfo.channel">
<int-http:uri-variable name="tel_number" expression="payload.getNumTelefono()"/>
</int-http:outbound-gateway>
tel_number不是作为参数传递的,你可以给我一个解决方案,通过url和json对象传递param作为字符串。
答案 0 :(得分:1)
你是什么意思&#34; tel_number不作为参数传递#34; ?
我刚刚修改了http sample:
<int:gateway id="requestGateway"
service-interface="org.springframework.integration.samples.http.RequestGateway"
default-request-channel="requestChannel">
<int:default-header name="content-type" value="application/json" />
</int:gateway>
<int:channel id="requestChannel"/>
<int-http:outbound-gateway request-channel="requestChannel"
url="http://localhost:8080/http/receiveGateway/{tel_num}"
http-method="POST"
expected-response-type="java.lang.String">
<int-http:uri-variable name="tel_num" expression="'foo'" />
</int-http:outbound-gateway>
它按预期工作 - 服务器端,我看
No mapping found for HTTP request with URI [/http/receiveGateway/foo]
您不清楚您对JSON的要求;如果您在有效负载中发送POJO并将content-type
标头设置为&#39; application / json&#39; (使用标题扩充器)并将杰克逊罐子放在类路径上,它会起作用。