У меня есть исходящий 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