Исходящий шлюз HTTP - переменная URI - кодировка - PullRequest
0 голосов
/ 30 мая 2018

У меня есть исходящий http-шлюз, который требует замены через переменную uri.Я отправляю строковую полезную нагрузку

<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>

Полезная нагрузка - {"workgroupId": "BTL_IT", "maxCount": 1}

вложенным исключением является org.springframework.expression.spel.SpelEvaluationException: EL1001E: проблема преобразования типов, невозможно преобразовать из java.lang.String в java.lang.Integer по адресу
org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler.handleRequestMessage (HandpReessessEx8: 40) Request*

Почему предполагается, что значение workgroupId является целым числом?подскажите, пожалуйста, как решить эту проблему.

РЕДАКТИРОВАТЬ: Теперь я изменил код для объединения на уровне контроллера и передачи полезной нагрузки, как требуется для динамической части.Новая проблема "?"становится% 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
...