Web-сервисы: Ошибка преобразования данных XDTO #690947


#0 by SmokeAce
Всем привет! Гуру Web-сервисов помогите разобраться! Итак у нас есть Web-сервис с описанием по ссылке: Обработка тут: При попытке авторизоваться в системе (signIn(login, password)) вываливается с ошибкой: {ВнешняяОбработка.плЗагрузкаДанныхИзOmnicommAutocheck.МодульОбъекта}: Ошибка при вызове метода контекста (signIn)     Ответ = Прокси.signIn(Пользователь, Пароль); по причине: Ошибка вызова операции сервиса:  { по причине: Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: { - [1,215] Проверка дополнительного свойства:     форма: Элемент     имя: status по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [1,215] Проверка дополнительного свойства:     форма: Элемент     имя: status по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: { При этом, с помощью утилиты WireShark отлавливаю файл ответа на преобразование которого и ругается 1С-ка. Сам файл ответа: Можно ли как то заставить 1С-ку понимать данный файл?
#1 by SmokeAce
up
#3 by Armando
В wsdl написано, что authResponseEntry содержит 2 элемента: dateTimeEnd и sessionId, а в ответ приходит там есть еще один элемент status. Вот от него крышу и сносит.
#4 by SmokeAce
там также написано что базовым типом для него является baseResponseEntry у которого еще 2 свойства ... Если кстати создать ОбъектXDTO таким образом:      то создается объект у которого 4 свойства ...
#5 by SmokeAce
упс ... некорректно запостил код: ТипОтвета = Фабрика.Пакеты.Получить(";); Ответ = Фабрика.Создать(ТипОтвета);
#6 by SmokeAce
и опять ";" лишняя, отредактировать сообщение можно ?
#7 by SmokeAce
То что у неё крышу сносит от свойства status это понятно ... Как все таки победить ?
#8 by Armando
Про baseResponseEntry просмотрел. Может ему тогда error не хватает? Я тож не очень силен в этом
#9 by SmokeAce
error возвращается в случае передачи некорректных данных логина или пароля ... если изменить на неправильный ошибка вывалится уже на error.
#10 by Armando
А почему возвращается signInResponse? 1С думает, что authResponseEntry придет.
#11 by SmokeAce
Возможно ... по wsdl signInResponse содержит элемент return с типом authResponseEntry. Пробую создать XDTO пакет нужной структуры в дереве конфигурации, но при обновлении конфигуратор просто закрывается.
#12 by Armando
Что это даст?
#13 by Armando
из wsdl вытащи <xs:schema></xs:schema>, сохрани в xsd. Потом в дереве конфигурации XDTO-пакеты ПКМ "Импорт XML-схемы...". И там редактируй.
#14 by SmokeAce
Импортировать схему получилось, но как не редактируй не изменяй типы, свойства скормить не удалось ... Чувствую придется через httpСоединение реализовывать, но так не хочется(((
#15 by Armando
Нельзя сделать, чтоб веб-сервис отдавал authResponseEntry?
#16 by Armando
Тут либо криво реализован веб-сервис, либо 1С криво с ним работает. Одно из трех как говорится.
#17 by SmokeAce
Мне нет ... Веб сервис написан на Java разработчиками программного обеспечения Omnicomm Autocheck по контролю топлива. Я бы с радостью указал им на ошибку если бы она была на их стороне, только вот как бы это точнее узнать))
#18 by SmokeAce
Попробую вечером реализовать клиент на Java ради интереса, отпишусь.
#19 by Armando
однозначно говорит о том, что в ответе должен быть authResponseEntry
#20 by SmokeAce
И не поспоришь ... Буду обращаться в саппорт разработчика веб сервиса. Как что прояснится отпишусь. Armando, спасибо!
#21 by Serginio1
Скорее всего signInResponse я вляется потомком authResponseEntry ( базовый тип) Что в общем нормально. Для anyType подходят все типы.
#22 by Serginio1
Нашел как использовать конфиг файл с dll public object СоздатьКлиентаWCFConfigFile(string ИмяФайла, object TChannel, string endpointConfigurationName, object endpointAddress)         {
#23 by Serginio1
И вызов из 1с Процедура ВызовСервисаИспользуяConfigFileНажатие(Элемент)
#24 by Serginio1
Прошу прощения не в ту ветку кинул
#25 by sapphire
можно использовать mule в качестве ws-proxy
#26 by SmokeAce
Обратился в саппорт, сказали что исправят ошибку ... В действительности возвращаемое значение не соответствовало описанию web-сервиса в wsdl, потому 1С-ка и ругалась. Всем спасибо за участие, можно закрывать ...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С