![]() |
![]() |
![]() |
|
В продолжение темы "Web-сервисы пример аэрофлот" | ☑ | ||
---|---|---|---|---|
0
kostik79
08.05.09
✎
01:36
|
Тема находится тут: v8: v8: Web-сервисы пример аэрофлот.
Web-сервис аэрофлота откликается и удается получить данные... Хочу написать прогу на 8.1 для автоматизации игры на бирже ставок "BetFair". Есть Web-сервис http://https://api.betfair.com/global/v3/BFGlobalService.wsdl Описание можно найти здесь: http://bdp.betfair.com/index.php?option=com_content&task=blogcategory&id=24&Itemid=76 Код: СервисБФ = WSСсылки.BetFairGlobal.СоздатьWSПрокси ("http://www.betfair.com/publicapi/v3/BFGlobalService/", "BFGlobalService", "BFGlobalService"); ТипLoginResp = СервисБФ.ФабрикаXDTO.Тип("http://www.betfair.com/publicapi/types/global/v3/", "LoginResp"); БФLoginResp = СервисБФ.ФабрикаXDTO.Создать(ТипLoginResp); ТипLoginReq = СервисБФ.ФабрикаXDTO.Тип("http://www.betfair.com/publicapi/types/global/v3/", "LoginReq"); БФLoginReq = СервисБФ.ФабрикаXDTO.Создать(ТипLoginReq); БФLoginReq.ipAddress = "ххх.ххх.ххх.ххх"; БФLoginReq.locationId = 0; БФLoginReq.username = "login"; БФLoginReq.password = "password"; БФLoginReq.productId = 82; БФLoginReq.vendorSoftwareId = 0; БФLoginResp = СервисБФ.login(БФLoginReq); БФLoginReq - объект с типом входного параметра функции login БФLoginResp объект с типом возвращаемого значения функции login При выполнении login(БФLoginReq) возникает такая ошибка: {Обработка.Обработка2.Форма.Форма(44)}: Ошибка при вызове метода контекста (login): Ошибка вызова операции сервиса: {http://www.betfair.com/publicapi/v3/BFGlobalService/}:BFGlobalService:login() БФLoginResp = СервисБФ.login(БФLoginReq); по причине: Ошибка вызова операции сервиса: {http://www.betfair.com/publicapi/v3/BFGlobalService/}:BFGlobalService:login() по причине: Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: {http://www.betfair.com/publicapi/types/global/v3/}LoginResp - [2,396] Проверка дополнительного свойства: форма: Элемент имя: header по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: {http://www.betfair.com/publicapi/types/global/v3/}LoginResp - [2,396] Проверка дополнительного свойства: форма: Элемент имя: header по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: {http://www.betfair.com/publicapi/types/global/v3/}APIResponseHeader - [2,434] Проверка дополнительного свойства: форма: Элемент имя: errorCode по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://www.betfair.com/publicapi/types/global/v3/}APIResponseHeader Ошибка та же, если не заполнять свойства объекта БФLoginReq Понимаю, что разбираться с этим не минутное дело, но мож кого заинтересует... |
|||
1
ТелепатБот
гуру
08.05.09
✎
01:36
|
||||
2
kostik79
08.05.09
✎
18:25
|
ап
|
|||
3
kot_bcc
08.05.09
✎
20:00
|
Там регистрация нужна. Регистрироваться, чтобы подключиться к веб-сервису -
слишком напрягает для "просто помочь":) Есть аккаунт готовый на "посмотреть"? |
|||
4
kot_bcc
08.05.09
✎
20:05
|
+(3) А вообще очень похоже на отказ без возврата LoginResp.
|
|||
5
kostik79
09.05.09
✎
15:00
|
Я думаю, что дело не в регистрации
т.к. если не заполнять свойства объекта БФLoginReq (username,password и т.д.) то происходит та же ошибка, а по идее должен вернуть "неудачу". |
|||
6
Asmody
09.05.09
✎
17:02
|
намедни разбирались... не дружит 1Ска с ВС на java. что-то там с wsdl не так. не хочет она преобразовывать ответный xml под xdto. пока решения не нашел.
если у кого есть доступ на партнерку, попробуйте задать этот вопрос там |
|||
7
kostik79
09.05.09
✎
17:09
|
Спасибо за ответ. Теперь хоть знаю что это не мой косяк.
|
|||
8
mini_root
10.05.09
✎
19:14
|
Игрались в январе со связкой 8.1<->CXF(Java), имхо движок веб-сервисов для 8.1 на тот момент был не рабочий (это при том что они уже несколько лет подряд орут про веб-сервисы) и не готов к практическому применению:
1. Сделали на CXF сервис принимающий и возвращающий сложные типы данных, запустили, проверили wsdl, описание типов - все на месте. 2. Зарегили в 1с, все зашибись, сложные типы данных увидились! 3. Попытались вызвать метод, принимающий сложный тип в качестве аргумента - со стороны жабы вылетел NullPointerException. 4. Включил логи, написал свой обработчик для CXF, вывалил SOAP пакет на консоль, а там у элементов пустой неймспейс, и префиксы расставлены как попало, и хоть ты тресни. 5. Отписались в хотлайн. ИМХО, веб сервисы в восьмерки для галочки, и не более - аэрофлотовский пример работает (НА ПОЛУЧЕНИЕ!), а если хочешь что-то свое и более или менее серьезное - облом. Про всякие WS-* спецификации лучше уж вообще не заикаться. P.S. Серьезных движков для веб-сервисов оооочень немного (WCF, Metro, Axis/CXF/JRE'шный - если не нужны транзакции и пр. извращения) и одинэсовский к ним явно не относится. Так шо если хотите юзать действительно сложные сервисы из 1с - пишете свою COM компоненту на C#, а оттуда уже юзайте WCF. |
|||
9
kostik79
11.05.09
✎
02:52
|
А хотлайн чёнить ответил?
|
|||
10
mini_root
12.05.09
✎
11:44
|
Пофиксили вроде, но мы не проверяли.
|
|||
11
akostrov
12.05.09
✎
14:30
|
Вот почитай, мой пост, никто не ответил у меня такая проблема возникла после смены платфомы
|
|||
12
akostrov
12.05.09
✎
14:30
|
||||
13
lvi15
12.05.09
✎
17:01
|
Я "присобачивал" к 1с ВнешнююКомпоненту на Net,
и в обработке 1с писал: ПриОткрытии ПодключитьВнешнююКомпоненту("AddIn.Conn1c"); COM_компонента = Новый ("AddIn.Conn1c"); ................. А далее COM_компонента.ИмяWebСервиса(ТаблЗнач1, ТаблЗнач2) и т.д. или ТаблЗнач = COM_компонента.ИмяWebСервиса() Но через 1с-ку, конечно, было бы технологичнее. Не успел до конца разобраться как связывать XDTO c тем XML, который возвращает сервис - все время были какие-то ошибки, да и связываться надо было через SSL. |
|||
14
kostik79
13.05.09
✎
23:03
|
11 Не, у меня без разницы, что на 8.1.11 что на 8.1.13 одинаково ругается.
|
|||
15
mini_root
14.05.09
✎
17:18
|
Пиши COM компоненту на C#, из нее юзай штатный WCF.
|
|||
16
kostik79
14.05.09
✎
19:46
|
Если б я знал C# то юзал бы ВС оттуда. Видимо придется подразобраться с С#
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |