2014-08-07 3 views
0

У меня есть преобразование для мыла для отдыха в моем inSecuence, для тестирования я использую soap-ui как cliente и сервлет, разработанный с затмением и осью в локальном. Пока все хорошо, все работает нормально.WSO2 ESB обрабатывает ответ сервлета как двоичный

Но ... когда я изменить HTTP конечную точку к реальному сервлета я получаю ответ в виде бинарного

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <axis2ns1073:binary xmlns:axis2ns1073="...">T0z=</axis2ns1073:binary> 
</soapenv:Body> 
</soapenv:Envelope> 

Когда я называю сервлет с любым браузером (например, Firefox), используя тот же URL Я нахожусь получение «NOK»

Это означает, что:

  • служба работает нормально, используя локальный макет
  • услуга возвращающегося д ата в двоичной форме при вызове к реальному сервлета
  • браузер, как Firefox может работать должным образом сообщения при вызове к реальному сервлета

я использовал tcpmon, чтобы увидеть различие между реакцией макета и ответом настоящий сервлет. Основное различие заключается в том, что настоящий сервлет отвечает кодированием передачи: chunked

¿Что я мог сделать, чтобы правильно отреагировать на ответ?

enter image description here

ответ

1

ли ваш сервлет имеет "Content-Type" заголовок в ответе?

Как я вижу на вашем прикрепленном изображении отсутствует заголовок Content-Type. Когда в ответе отсутствует заголовок Content-Type, ESB принимает двоичный код Content-Type и анализирует ответ как двоичный.

Чтобы устранить проблему, обновите свой сервлет, чтобы включить заголовок Content-Type в ответ с соответствующим типом контента, например: text/plain, и повторите попытку. Он должен работать.

Если вы не можете изменить свой сервлет, вам необходимо настроить ESB на использование типа содержимого по умолчанию, если отсутствует заголовок Content Type. Вы можете найти информацию о том, как это сделать в http://charithaka.blogspot.sg/2014/07/how-to-enforce-default-http-content.html

Надеюсь, это поможет!

Спасибо и наилучшими пожеланиями,

Harshana

+0

Привет, я не могу исправить сервлет, является производство сервлет от третьей стороны, а не под моей компетенции. Хотя в моем браузере нет содержимого, я вижу сообщение «NOK». Есть ли способ обработать ответ как text/plain по умолчанию для этой конечной точки? – jmhostalet

+0

В этом случае вы можете установить Content-Type по умолчанию для ответа в WSO2 ESB, как указано в http://charithaka.blogspot.com/2014/07/how-to-enforce-default-http-content.html?m = 1 –

Смежные вопросы