HTTP出站网关 - uri变量 - 编码

时间:2018-05-30 09:25:09

标签: spring spring-integration gateway outbound

我有一个http出站网关,需要通过uri-variable进行替换。我发送一个字符串有效载荷

<int-http:outbound-gateway  
               url="https://ia-zatie.str13.tst.bnst.nh/ia-zaatie/rest/signan/v2/wg/{workgroupId}//actionType/New?max={maxCount}"
               http-method="GET" 
               header-mapper="headerMapper"
               expected-response-type="java.lang.String" request-factory="sslFactory" >
               <int-http:uri-variable name="workgroupId" expression="payload['workgroupId']" />
               <int-http:uri-variable name="maxCount" expression="payload['maxCount']"/>
        </int-http:outbound-gateway>

有效负载 - {&#34; workgroupId&#34;:&#34; BTL_IT&#34;,&#34; maxCount&#34;:1}

  

嵌套异常是   org.springframework.expression.spel.SpelEvaluationException:EL1001E:   类型转换问题,无法从java.lang.String转换为   为java.lang.Integer           在
  org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler.handleRequestMessage(HttpRequestExecutingMessageHandler.java:409)

<击> 为什么假设workgroupId的值是一个整数?请告诉你如何解决这个问题。

修改 我现在将代码更改为在控制器级别连接并根据动态部分的需要传递有效负载。 新问题是&#34;?&#34;成为%3F喜欢 - /新%3Fmax = 1。 我怎么编码和在哪里?

> <int-http:outbound-gateway    
>                  url="https://ia-zatie.str13.tst.bnst.nh/ia-zaatie/rest/signan/v2/wg/{workgroup}"
>                  http-method="GET" 
>                  header-mapper="headerMapper"
>                  expected-response-type="java.lang.String" request-factory="sslFactory" >
>              <int-http:uri-variable name="workgroup" expression="payload" />
>                       </int-http:outbound-gateway>

有效载荷:

String payload = gsRequest.getWorkgroup()+"/actionType/New?max="+ gsRequest.getMaxCount();
which is like - BL_IH/actionType/New?max=1

0 个答案:

没有答案