Имя: Пароль:
1C
1С v8
v8: Ошибка при создании "WSОписание" Extra content at the end of the document
,
0 Kastello
 
15.01.14
13:15
При попытке получить определения из файлика, вот такая тема:

по причине:
Ошибка разбора XML:  - [1,1]
Фатальная ошибка:
Extra content at the end of the document
SystemId: https://192.168.0.111/Service1.svc?xsd=xsd0

Причем - если просто рУками в WS-Ссылку, то заходит...
1 Kastello
 
15.01.14
13:22
Сервис поднят на ИИСе, через ССЛ. При поднятом SSL IIS цепляет в WSDL одну неприятную штуку, а именно:
<wsp: Policy>
Если пытаться взять определения с этим тэгом, то 1цэ пишет "Неверный формат"
2 Kastello
 
15.01.14
13:23
(1) Ну с этим наверное все успели посталкиваться
3 Kastello
 
15.01.14
13:25
Поэтому я решил пойти через другой проход, дёрнуть WSDL, **нуть ненужный тэг, и полученный файлик использовать для определения.
4 Kastello
 
15.01.14
13:29
Вот так вот:

    HTTP = Новый HTTPСоединение("192.168.0.111",,,,,,SSL);
    HTTP.Получить("/Service1.svc?wsdl", КаталогВременныхФайлов() + "TMP.XML");
    
    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл(КаталогВременныхФайлов() + "TMP.XML");
    ПостроительDOM     = Новый ПостроительDOM;
    ДокументDOM     = ПостроительDOM.Прочитать(Чтение);
    
    СтрокаXPath="/wsdl:definitions";
    
    ВыражениеXPath     = ДокументDOM.СоздатьВыражениеXPath(СтрокаXPath, Новый РазыменовательПространствИменDOM(ДокументDOM));
    РезультатXPath     = ВыражениеXPath.Вычислить(ДокументDOM);
    КорневойУзелDOM = РезультатXPath.ПолучитьСледующий();
    
    СтрокаXPath="/wsdl:definitions/wsp:Policy";
    
    ВыражениеXPath = ДокументDOM.СоздатьВыражениеXPath(СтрокаXPath, Новый РазыменовательПространствИменDOM(ДокументDOM));
    РезультатXPath = ВыражениеXPath.Вычислить(ДокументDOM);
    УзелDOM = РезультатXPath.ПолучитьСледующий();
    КорневойУзелDOM.УдалитьДочерний(УзелDOM);
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(КаталогВременныхФайлов() + "DAOS.xml");
    
    ЗаписьDOM = Новый ЗаписьDOM;
    ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
5 Kastello
 
15.01.14
13:36
Полученный файлик, нормально загружается в объект метаданных WS-Ссылка, но при попытке:
Определение = Новый WSОпределения(КаталогВременныхФайлов() + "DAOS.xml");

Выдаёт сообщение (0)
6 Kastello
 
15.01.14
13:50
Что то по ходу - веб-сервисы совсем не ПОПУлярная тема...
7 Kastello
 
15.01.14
14:13
Люди?
8 Kastello
 
15.01.14
14:27
Люди!
9 MaxisUssr
 
15.01.14
14:32
(0)
Видимо в WSDL в конце лишние строки или еще чего
10 Kastello
 
15.01.14
14:45
(9) Нее - в объект МД то пролазит.
11 Serginio1
 
15.01.14
14:52
Ну ну навряд ли стоит убирать
http://www.ibm.com/developerworks/ru/library/j-jws18/index.html?ca=dat

попробуй это решение
Помощь с Web сервисом
12 Kastello
 
15.01.14
15:12
(11) Ну, если не убирать то - "Неверный формат", если убрать SSL он исчезает сам и всё работает, но тогда без SSL...
13 Serginio1
 
15.01.14
15:20
(12) Если Вэб сервис поддерживает. Там не только SSL это безопасность транспорта,  но  может быть шифрование сообщений итд.
14 Kastello
 
15.01.14
15:30
(13) О чем и речь, без него низя
15 Kastello
 
15.01.14
15:32
<wsdl:types>
        <xsd:schema targetNamespace="http://tempuri.org/Imports">;
            <xsd:import schemaLocation="https://192.168.0.111/Service1.svc?xsd=xsd0"; namespace="http://tempuri.org/"/>;
            <xsd:import schemaLocation="https://192.168.0.111/Service1.svc?xsd=xsd1"; namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>;
            <xsd:import schemaLocation="https://192.168.0.111/Service1.svc?xsd=xsd2"; namespace="http://schemas.datacontract.org/2004/07/DAOS"/>;
        </xsd:schema>
    </wsdl:types>

Если убрать все тэги <xsd:import schemaLocation, то работает, но там ссылки на пространства имён...
16 George Wheels
 
15.01.14
15:33
Сертификат.
17 George Wheels
 
15.01.14
15:34
+(16) cacert.pem
18 Kastello
 
15.01.14
15:35
(16,17) Причем сертификат? Я получаю ХМЛ!
19 George Wheels
 
15.01.14
15:36
(18) Сертификат при SSL.
20 Serginio1
 
15.01.14
15:38
(15) Что работает?

Rcnfnb можно смотреть еще точки подключения (binding)
и к каим можно подключиться
21 Infsams654
 
15.01.14
15:40
(15) сохрани ="https://192.168.0.111/Service1.svc в файл и ссылайся на него (можно запихнуть в макет).
(19) - это не в тему
22 Kastello
 
15.01.14
15:40
(15) Но при этом перестаёт грузиться в объект МД - "Неверный формат"
23 Serginio1
 
15.01.14
15:41
24 George Wheels
 
15.01.14
15:43
(21) Почему не в тему?

Сегодня у меня было то же самое. Сначала забыл про SSL. Потом добавил сертификат в cacert.pem и проблема пропала.
25 Kastello
 
15.01.14
15:43
(24) Я понял, братан - это ВАЖНО! Но не для 1цэ!
26 George Wheels
 
15.01.14
15:44
(25) Я именно из 1С подключаюсь к сервису.
27 Kastello
 
15.01.14
15:44
(24) Забуть про ССЛ, я тя умоляю
28 Kastello
 
15.01.14
15:44
(24) Забудь!
29 George Wheels
 
15.01.14
15:45
(27) (28) Как хочешь.