Вызов службы WSO2 ESB Proxy. Конечная точка внутренней службы (WCF)(большой IP-адрес) имеет ошибку 403/404.

Я создаю WSO2 ESB Proxy сервис для внутреннего сервиса. Я могу успешно позвонить моей конечной точке службы DEV WCF, которая находится на сервере DEV, а конечной точкой является имя сервера DEV.
Но я использую тот же способ для вызова конечной точки тестовой среды, конечная точка теста является конечной точкой Big Ip. Похоже, WSO2 не может получить доступ к конечным точкам Big Ip.

Из отладочной информации.(Моя большая конечная точка ip - https://hostname/201507/servicename.svc)

[2015-07-08 11:48:21,786] DEBUG - headers http-outgoing-3 >> POST /201507/servicename.svc HTTP/1.1
[2015-07-08 11:48:21,786] DEBUG - headers http-outgoing-3 >> Content-Type: application/soap+xml
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Transfer-Encoding: chunked
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Host: hostname:80
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Connection: Keep-Alive
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> User-Agent: Synapse-PT-HttpComponents-NIO

Похоже, что WSO2 не может успешно выполнить SOAP для правильной конечной точки, имеет неправильный порт (80).
Я также пытаюсь жестко закодировать порт как этот https://hostname:443/201507/servicename.svc, но не везет ту же ошибку.
Кто-нибудь знает причину по этому поводу?

РЕДАКТИРОВАТЬ:

Это может привести к тому, что по умолчанию WSO2 использует chunked-кодировку для вызова серверной службы.

1 ответ

Решение

Проблема: порт 80 для https. Это ошибка в wso2 ESB4.8.1 ( https://wso2.org/jira/browse/ESBJAVA-3336)

Моя проблема может быть вызвана по умолчанию wso2 с использованием HTTP 1.1 с Transfer-Encoding: chunked для вызова конечной точки.

Но моя тестовая среда не может поддерживать кодировку. Это вызывает ошибку.

добавлять

<property name="DISABLE_CHUNKING" value="true" scope="axis2"/>

Для прохода через прокси:
Длина содержимого неверна при отключении чанкинга в ESB.
увидеть ошибку в https://wso2.org/jira/browse/ESBJAVA-3297

Для других:
Работает! но если ваш клиент - SOAP11, он отправит ContentType как "text/xml", а ваш сервер примет "application/soap+xml". вам нужно добавить

<property name="messageType" value="application/soap+xml" scope="axis2" type="STRING"/>
<property name="ContentType" value="application/soap+xml" scope="axis2" type="STRING"/>
(default not needed property ContentType)
Другие вопросы по тегам