Проблема:
Некий сервис прокинут через WSO2 ESB. При вызове прокси-сервиса возвращается SOAP-Fault:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">, из чего следует, что конечный сервис ответил странным "411 Length Required", да ещё и с html в теле ответа. При вызове же конечного сервиса из soapUI приходит корректный ответ.
<soapenv:Body>
<soapenv:Fault>
<soapenv:Code>
<soapenv:Value>axis2ns4:</soapenv:Value>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en">Unexpected response received. HTTP response code : 411 HTTP status : Length Required exception : First Element must contain the local name, Envelope , but found html</soapenv:Text>
</soapenv:Reason>
<soapenv:Detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Причина:
HTTP-код 411 говорит о том, что сервис требует, чтобы при его вызове был установлен заголовок "Content-Length". Шина же использует Chunked transfer encoding, не устанавливая этого заголовка. К сожалению, отключить chunked-encoding можно только переключив шину на использование HTTP 1.0 установкой свойства:
<property name="FORCE_HTTP_1.0" value="true" scope="axis2"/>перед отправкой запроса во входящей цепочке медиации.
Комментариев нет:
Отправить комментарий