Я должен использовать стороннюю веб-службу, реализованную в .NET 2.0 (конечно, в IIS).
Мне нужно сделать java-клиент. Я использую wsdl2java для создания заглушки SOAP.
Поскольку исходный проект Apache Axis теперь не поддерживается, и у меня возникли проблемы с анализом некоторых ответов от службы, я преобразовал клиент для использования последней (1.5) версии Axis2. Теперь служба .NET даже не распознает мои запросы.
Мне удалось отключить «разбиение на фрагменты» (где «заглушка» — это переменная типа MumbleStub, сгенерированная wsdl2java, и здесь я показываю несколько строк кода как одну ужасную строку):
stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);
.. так что, по крайней мере, служба распознает мой запрос КАК запрос, хотя и плохой: "HTTP/1.1 400 Bad Request" теперь является ответом (в отличие от "вступительной/краткой" страницы, предлагающей мне ссылку на WSDL).
Я заметил, что запрос Axis ("1") имеет другой заголовок Content-TYpe (text/xml, vs application/soap-xml), и мне интересно, как изменить этот заголовок запроса, если это действительно проблема.
Кстати, у кого-нибудь еще была эта проблема? Является ли проблема действительно (неотображаемой здесь, так как это выглядит как "внедрение элемента" в движок блога)... версия xml-"1.0"... "метатег вступления XML", который Axis2 добавила в начало запроса?
WS-Deathstar, действительно.