|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
Приветствую, есть некий вебсервер с wsdl (нужно убрать $$$ из 3х мест в строке) Указано, что для подключения к нему надо использовать «надежный сеанс» (ws-reliable messaging) И указаны такие настройки для программы soapUI, чтобы потестить сервис автор Cтавим галку WS-RM, версия 1.0, AckTo = http://www.w3.org/2005/08/addressing • Первым шагом любого теста должен быть вызов метода Login. После него можно добавлять любые другие методы. • Для каждого шага с иконкой SOAP -> OpenEditor или двойной клик на названии. Внизу будут закладки. Закладка WS-RM: o Ставим галку Enable WS-Reliable Messaging (выбираем WS-RM Version 1.0) o Пишем AckTo: http://www.w3.org/2005/08/addressing Закладка WS-A: o Ставим галки: Enable WS-A Addressing (выбираем WS-A Version 200508), Add default wsa:Action, Add default wsa:To o Пишем в ReplyTo: http://www.w3.org/2005/08/addressing Через этот самый soapUI метод Login срабатывает т.е. сервис работает. Теперь это мне надо сделать чтото типа клиента. Писать свой клиент с преферансом и поэтессами на каком нибудь C# не потяну, да и времени в обрез. Пытаюсь найти какое нибудь приемлемое решение на Powershell или Python и ничего не получается. Насколько я понимаю, все дело в пресловутом WS-A и WS-RM. Ни у кого нет готового рецепта решения, ну или хотя бы дайте направление куда копать, в сторону каких функций/библиотек смотреть? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 03:29 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
QWERiONТеперь это мне надо сделать чтото типа клиента. Писать свой клиент с преферансом и поэтессами на каком нибудь C# не потяну, да и времени в обрез. Создаёшь новый проект на C#, в Solution Explorer'е кликаешь правой кнопкой мыши на References, в контекстном меню кликаешь Add Service Reference, вводишь там адрес http://sample4.aplana.com/RseService/RseService.svc, жмёшь Ok, будут автоматически сгенерированы классы для доступа к сервису. В коде пишешь: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Всё! Клиент написан. Я за минуту накликал. У меня работает, только залогиниться осталось. Выдаёт UnathorizedAccess. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 15:02 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
petalvik, спс за отклик. Примерно это я вчера тоже сделал. С помощью тестового клиента WCF из VS. Но вот как раз очень бы хотелось избежать всего этого, в смысле писать свой клиент, да еще и на C#. Душа просит праздника, чего то более легковесного. Например, какого нибудь скрипта, ну или хотя бы командлета того же Powershell в котором это все можно заставить работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 19:24 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
QWERiONПисать свой клиент с преферансом и поэтессами на каком нибудь C# не потяну, да и времени в обрез. QWERiONПримерно это я вчера тоже сделал. Честно говоря, утомило уже это. Зачем вечно пытаются оправдываться? Ну не знаешь, как использовать мощь среды разработки и полноценного языка на всю катушку, ладно. Но сочинять-то зачем? QWERiONНо вот как раз очень бы хотелось избежать всего этого, в смысле писать свой клиент, да еще и на C#. Что значит "писать"? Он уже написан! QWERiONДуша просит праздника, чего то более легковесного. Например, какого нибудь скрипта, ну или хотя бы командлета того же Powershell в котором это все можно заставить работать. И в чём проблема? Если хочется вместо нескольких кликов мышкой и минуты времени настучать тысячи ударов по клаве и потратить несколько часов времени - вперёд и с песней! Только с фига-ли скрипт будет более легковесным? Работать он будет медленней (процессор грузить сильней), памяти жрать больше. А то, что теоретически кода в скрипте может быть меньше, полностью нивелируется тем фактом, что в C# он генерируется, а не пишется вручную. Праздник - это не скрипт. Праздник - это метапрограммирование, когда код не надо писать, а он генерируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 23:14 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
petalvikЧестно говоря, утомило уже это. Зачем вечно пытаются оправдываться? Ну не знаешь, как использовать мощь среды разработки и полноценного языка на всю катушку, ладно. Но сочинять-то зачем? Ну так я установил студию, запустил тестовый клиент WCF из нее и попробовал залогиниться. У меня получилось. Это и значит, что "примерно тоже самое я вчера и сделал". Точно также добавил ссылку на wsdl в новый консольный проект. Полазил по сгенерированному дереву методов. Это все я вычитал при беглом чтении главы wcf у Троелсена. Собственно, это я и проделал перед обращением к "коллективному разуму". Вот реально, если бы умел использовать среду и язык, то у меня таких проблем бы не возникло. Моя сфера деятельности далека, от сетевого программирования, я больше sql запросики пишу. На C# делал несколько малюсеньких программок и не более того, да и было это года 4 назад. Теперь почему я не хочу "писать", да и что значит это самое "писать". Собственно работа с данным сервисом предполагает большой объем отправляемых туда/сюда данных с достаточно сложной структурой. Работа по подготовке всех этих структур, и заполнению их данными из базы, мне представляется адской. Возможно это из-за того, что я не знаком с инструментарием visual studio и c С# на хорошем уровне. Но это так и времени ознакомиться нет. Собственно, почему скрипт, требований к быстродействию нет. Все будет выполняться по расписанию во внерабочее время, и пусть себе кидает данные. Да и решал я похожие задачи скриптами, есть наработки, только вот без soap и wsdl. Мне гораздо проще средствами sql сервера и Powershell сгенерировать валидную xml-разметку и отправить куда скажут. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 02:05 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
QWERiONВот реально, если бы умел использовать среду и язык, то у меня таких проблем бы не возникло. Моя сфера деятельности далека, от сетевого программирования, я больше sql запросики пишу. Я всё понимаю. Посади меня писать скрипты на PowerShell, я также буду страдать. Просто иногда хочется поворчать. QWERiONТеперь почему я не хочу "писать", да и что значит это самое "писать". Собственно работа с данным сервисом предполагает большой объем отправляемых туда/сюда данных с достаточно сложной структурой. Работа по подготовке всех этих структур, и заполнению их данными из базы, мне представляется адской. В том-то и дело, что там получается полсотни классов, десяток перечислений и пара интерфейсов. Вручную всё это описывать - убиться можно. Сила SOAP/WCF как раз в том и заключается, что сервер выставляет описание своих сервисов в виде WSDL, а по нему на клиенте можно сгенерировать код автоматически. QWERiONМне гораздо проще средствами sql сервера и Powershell сгенерировать валидную xml-разметку и отправить куда скажут. Ой, много писать придётся. Может, стоит рассмотреть такой вариант: сгенерированный код на C# скомпилировать в библиотеку dll, и вызывать её из скрипта? Насколько я знаю, это возможно. Я не спец по PS, но мне кажется, это в любом случае будет проще, чем вручную всё писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 22:49 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
QWERiON, кстати, я вот ещё о чём подумал. В языке F# есть офигенно удобные Type Provider'ы. Я опробовал Microsoft.FSharp.Data.TypeProviders.WsdlService с указанным сервисом - работает! На лету создаются все необходимые типы, показываются в автоподсказке. Беглое гугление выдаёт, что тайппровайдеры можно использовать в PowerShell. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 01:49 |
|
soapc ws-addressing ищу рецепт
|
|||
---|---|---|---|
#18+
petalvikQWERiONМне гораздо проще средствами sql сервера и Powershell сгенерировать валидную xml-разметку и отправить куда скажут. Ой, много писать придётся. На самом деле все не так страшно. Предыдущая версия данного сервиса, от других разработчиков так и работала. Скрипт который все это выполнял имел меньше 900 строк кода, это учитывая комментарии. Я написал для каждого метода на сервере БД запрос, в котором имена столбцов соответствовали именам параметров передаваемых через функцию. Ну и для каждого метода резализовал простейший парсер который добавлял начало и конец xml разметки, ну и тупо выводил все поля из запроса используя конструкцию вида: Код: powershell 1.
где $Line[$j] имя столбца, а $ss соответственно содержимое полученное запросом. Все это благополучно как строка отправлялась на сервер. Ну и далее следовала логика, которая распарсивала ответ сервера, и проставляла нужные данные в базе. Все прекрасно работало года три. Пока не сменили команду разработчиков, а новая метла по-новому метет. petalvikМожет, стоит рассмотреть такой вариант: сгенерированный код на C# скомпилировать в библиотеку dll, и вызывать её из скрипта? Насколько я знаю, это возможно. Я не спец по PS, но мне кажется, это в любом случае будет проще, чем вручную всё писать. dll писать не вариант т.к. все это живет, и развивается, постоянно приходят письма о исправлении ошибок, обновлениях, новых методах и проч. т.е. нужно иметь возможность оперативно со всем этим работать, скрипт самый лучший вариант. Да и времени нет осваивать новые технологии :) сроки поджимают. В общем делаю все на павершеле. Есть прогресс. код на PowerShell Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
В общем жить можно. Геморно, но делать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2015, 00:42 |
|
|
start [/forum/topic.php?fid=19&msg=39029123&tid=1396854]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 409ms |
0 / 0 |