КАК переопределить заголовки запросов Axis2 для веб-службы .NET?

StackOverflow https://stackoverflow.com/questions/1041101

Вопрос

Мне нужно использовать сторонний веб-сервис, реализованный в .NET 2.0 (конечно, в IIS).

Я должен сделать Java-клиент. Я использую wsdl2java для создания заглушки SOAP.

Поскольку исходный проект Apache Axis теперь выглядит не поддерживаемым, и у меня возникли некоторые проблемы при анализе некоторых ответов службы, я преобразовал клиент для использования последней (1.5) версии Axis2. Теперь служба .NET даже не распознает мои запросы.

Мне удалось получить "кусок" выключен (где «stub» - это переменная типа MumbleStub, сгенерированная wsdl2java, и я показываю, каковы несколько строк кода в виде одной ужасающей строки):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

.. поэтому, по крайней мере, служба распознает мой запрос AS , хотя и плохой: " HTTP / 1.1 400 Bad Request " является ответом (в отличие от страницы "intro / summary", предлагающей мне ссылку на WSDL).

Я заметил, что запрос Axis (" 1 ") имеет другой заголовок Content-TYpe (text / xml, vs application / soap-xml), и мне интересно, как изменить этот заголовок запроса, если он находится в На самом деле проблема.

С другой стороны, кто-нибудь еще имел эту проблему? Действительно ли проблема (здесь не отображается, так как она выглядит как «добавление элементов» движку блога) ... xml version- " 1.0 "quot; ... " мета-тег XML " что Axis2 добавлено в начало запроса?

WS-Deathstar, действительно.

Это было полезно?

Решение

Поскольку вы упоминаете другой заголовок типа контента, я полагаю, ваш клиент пытается отправить запросы SOAP 1.2, а стороннее приложение понимает только SOAP 1.1

Попробуйте изменить версию используемого мыла, поскольку AFAIK AXIS2 по умолчанию использует SOAP 1.2

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top