Прежде всего, загрузите SOAPUI и проверьте wsdl, ваш запрос и ответ. Если что-то не так с их стороны, скажите им, чтобы они сами проверили свой веб-сервис и исправили его (кучка любителей!). Если веб-сервис не соответствует Базовому профилю WS-I, я бы даже сказал, не тратьте свое время впустую.
И если вы все еще не можете это исправить, следующее может указать вам правильное направление.
Я получил подобное исключение при десериализации ответов xml и soap, но так как вы не предоставили много подробностей, я не знаю вашей конкретной реализации. Так что это может быть полезно для вас, или не совсем: /.
Моя проблема была вызвана объектами в xml, которые являются унаследованными типами. Очевидно, XmlSerializer не справится с этим без каких-либо дополнительных инструкций.
Пример (C #):
Мой xml содержал объекты типа Function
и некоторые типы, наследуемые от Function.
Из-за этого обычный синтаксис для создания XMLSerializer не будет работать.
XmlSerializer Serializer = new XmlSerializer(typeof(MyCustomObject);
Очевидно, сериализатору нужны дополнительные инструкции, например:
XmlSerializer Serializer = new XmlSerializer(typeof(MyCustomObject), new Type[] {typeof(Function.InheritedType1), typeof(Function.InheritedType2), typeof(Function.InheritedType3), typeof(Function.InheritedType4) });
Где InheritedType
- тип наследуемого объекта.
Надеюсь, это кому-нибудь поможет, удачи:).