Имя: Пароль:
1C
 
1C <-> Java WS
0 SemenHairy
 
14.03.11
11:15
День добрый!

Битую неделю серфю инет, но не нашел ни одного ответа, одни вопросы... Ситуация очень типичная - есть web-service разработанный на Java (тут сразу оговорюсь - разработчик я, сервис сделан по всем правилам, отлажен, запущен в продакшен, знаю про него все, написано кучу ПО на С# и php которое с ним работает), пытаюсь вызывать методы из 1С стандартно получаю ошибку, что он не может привести типы возвращаемых значений.

Аналогичные проблемы в темах:
v8: Не могу заставить работать Web сервис, ошибка XDTO
http://www.sql.ru/forum/actualthread.aspx?tid=705071
v8: Web-сервис: получить из сервиса несколько значений
v8: Web-сервис, Получение ответа
v8: v8: WS-ссылки и WebService Java - не скрестить ((
... и сотни других похожих тем...

Пробовал по всячески как советовали в темах - все в пустую.
Дампы показывают что данные на сервер приходят правильно, и в ответ данные посылаются корректно.

Пробовал в 8.1 и 8.2 - одинаково.

Если кто то сталкивался с данной проблемой и смог победить - пожалуйста отпишитесь!

P.S. Умничать из серии "проверь работу своего веб сервиса, он работает не правильно" и т.п. - лучше промолчите поберегите своё время не устраивайте бесполезный флуд.
1 Fragster
 
гуру
14.03.11
11:17
ошика XDTO говорит о том, что веб сервис возвращает невалидный XML
2 Asmody
 
14.03.11
11:19
если внимательно читал те ветки, то там везде написано: "не работает 1С с джавовскими сервисами". Напиши com-обертку
3 Asmody
 
14.03.11
11:21
(1) он может быть вполне валидный, просто 1С его не понимает
4 Fragster
 
гуру
14.03.11
11:25
(3) а ты проверь
5 Fragster
 
гуру
14.03.11
11:25
(2) я хз, какая разница, чем xml генерится?
6 Fragster
 
гуру
14.03.11
11:26
(4)+ лучше каким-нит анализатором трафика, причем
7 Asmody
 
14.03.11
11:28
(4) проверял. берешь простенький класс на java с парой полей разных типов (базовых), оборачиваешь в веб-сервис, который возвращает вектор объектов этого класса. втыкаешь в 1Ску - wsdl видит, данные не получает. Переписываешь на C# с точностью до синтаксиса, втыкаешь в 1Ску, всё работает
8 Fragster
 
гуру
14.03.11
11:29
(7) а через (6) смотреть если? какие различия у XML?
9 Asmody
 
14.03.11
11:30
(8) различия есть. но xml валидный и в том, и в другом случае.
10 Fragster
 
гуру
14.03.11
11:30
(9) ну так надо курить эти различия
11 Asmody
 
14.03.11
11:31
причем, на java пофиг как делать: хоть через jws, хоть через axis
12 SemenHairy
 
14.03.11
11:51
2 Fragster
Я умею читать :) вот только почему?

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


2 Asmody
Тут дело простое - 1С работает на MSовских классах работы, а C# делает именно такие web-service, другой вопрос почему сам C# работает с Java, а 1С нет.
Да еще пробовал использовать MSSOAP.SoapClient30 - тоже работает на ура, но крайне неудобно, особенно когда речь идет с работой вложенных классов.

Написать обертку конечно всегда можно, вот только как то тратить неделю времени что бы обернуть почти полсотни методов как то жестко!


...

нда я как то думал что 1С получше :)
13 Fragster
 
гуру
14.03.11
11:53
а diff между с# и явовоским XML будет?
14 SemenHairy
 
14.03.11
12:17
У меня к сожалению нет сервиса на C# и проблема не в передаваемом а получаемом xml-нике... может у Asmody есть пример примеры с которых можно снять диф.
15 Asmody
 
14.03.11
17:14
набросал пример. вот код java http://pastebin.com/RCHALWV7
вот код C#(mono) http://pastebin.com/tfUKgME5

для начала отмечу, что java генерит весьма странный wsdl. вот что генерит java: http://pastebin.com/GLVHTBph
а вот wsdl от mono: http://pastebin.com/U7MPM0Zz
16 Пип Пибип
 
14.03.11
17:28
ОФФ: тема сия волнует меня, до глубины души
17 Asmody
 
14.03.11
17:34
(15)+ на java попробовал обернуть возвращаемый объект в массив в oneObject. Изначально там было просто
public SampleData oneObject()
18 Asmody
 
14.03.11
17:35
вот так они выглядят в 1С http://img703.imageshack.us/img703/4890/wstest.png
19 Asmody
 
14.03.11
17:41
ну и соответственно, response на manyObjecs(10)
java: http://pastebin.com/nZLwVrEr
mono: http://pastebin.com/WgDLQfyS
20 Asmody
 
14.03.11
17:42
думаю теперь данных для размышления более, чем достаточно