Ошибка несоответствия тегов при использовании WSDL веб-службы Java с клиентом gsoap C - PullRequest
2 голосов
/ 18 января 2011

Я создал клиент C для WSDL веб-службы java Axis 1.4, используя инструмент wsdl2h и soapcpp2 из gsoap 2.7.17.

Я использую этот клиент soap в своем приложении для iphone.Я могу успешно скомпилировать приложение.

Но, когда я пытаюсь вызвать функцию из файла клиента, она возвращает значение nil в структуре ответа, но код возврата вызова функции - SOAP_OK.

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

АвтономныйВеб-служба работает на том же компьютере на сервере Tomcat.

Итак, кто-нибудь может помочь, в чем может быть проблема.

1 Ответ

0 голосов
/ 02 февраля 2011

Вам захочется сбросить xml, полученный на сервере. Похоже, что заглушки, которые были сгенерированы для вашего клиента c, неполны. У меня нулевой опыт работы с клиентами C, но в зависимости от того, насколько велика разница между отправляемым xml и ожидаемым, это может быть легко или почти невозможно исправить.

Axis 1.4 может генерировать довольно уродливый XML для определенных объектов Java. В зависимости от того, что вы можете контролировать, вы можете быстрее работать с серверным кодом, так что ось wsdl лучше генерирует синтаксический анализ с вашими инструментами C.

...