Просьба Помочь С Веб-сервисом

27.11.2012
7
0
#1
Доброго времени суток!

Есть такая задача:
Требуется отсылать некоторые документы с сервера Домино на веб-сервис приема этих документов. Документы должны передаваться в виде XML-файлов. Агента, который соберет эти документы по серверу я напишу, XML создам, но как их отправить по указанному адресу?

Может кто сталкивался с подобным?
Или хотя-бы подскажите, в какую сторону копать.
Заранее спасибо.
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Погуглите "notes web service consumer" или "web service site:codeby.net", инфы море.
 

Dragon108

Well-known member
19.01.2010
265
0
#3
Доброго времени суток!

Есть такая задача:
Требуется отсылать некоторые документы с сервера Домино на веб-сервис приема этих документов. Документы должны передаваться в виде XML-файлов. Агента, который соберет эти документы по серверу я напишу, XML создам, но как их отправить по указанному адресу?

Может кто сталкивался с подобным?
Или хотя-бы подскажите, в какую сторону копать.
Заранее спасибо.
Вот ссылки, могут помочь:

Практическое использование Web-сервисов в IBM Lotus Domino 7: Что такое Web-сервисы и почему они важны?

Практическое использование Web-сервисов в IBM Lotus Domino 7: Написание и проверка простых Web-сервисов

Практическое использование Web-сервисов в IBM Lotus Domino 7: Создание сложных Web-сервисов

Web-службы Lotus Notes/Domino 7

Быстрое создание Web-служб Domino

Использование Web-сервисов с помощью Java-агента Lotus Domino

Но главное понимать одно - что web-service - это, грубо говоря, просто точка входа в систему. В общем случае, в той системе, в которую передают данные (в вашем случае, то куда вы собираетесь слать xml) создают веб-сервис, который имеет набор методов (команд), которые "что-то делают" в этой системе :), и которые можно вызывать из вне по средствам http ссылка. Весь сервис, в общем, представляет из себя WSDL файл, который потом передается вам, и публикуется в вашей системе как web service Consumer (это конкретно в Lotus, а так с ним можно работать просто видя WSDL в браузере и отсылая к нему команды с параметрами). Таким образом вам предоставляются методы, которыми можно работать с внешней системой.
 

Мыш

Премиум
12.02.2008
1 092
10
#4
Можно я тут спрошу, чтоб темы не плодить?
Занимаюсь сейчас примерно той же задачей. Создал лотусовый web service consumer по WDSL-файлу. И столкнулся с тем, что часть параметров (в частности, файлы) передается сервису как
Код:
bytearray() as byte
. Насколько мне помнится, размер массива в lotusscript ограничен, а файлы будут большими. Что делать? Использовать Java очень не хочется... :)
 

nvyush

Lotus team
22.04.2009
2 317
0
#5
Мыш
У LS слишком много ограничений, чтобы писать на нём web service Consumer, хоть LN это и позволяет. Пишите сразу на Яве, чтобы потом не переписывать.
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#6
Насколько мне помнится, размер массива в lotusscript ограничен, а файлы будут большими. Что делать? Использовать Java очень не хочется... blush.gif

из-за ограничений в системе (использование только LS) я передавал файлы как base64, а так, конечно, лучше джава
 

Мыш

Премиум
12.02.2008
1 092
10
#7
nvy, Kee_Keekkenen - спасибо. Если не затруднит, расскажите поподробней.
Дело в том, что сервис я как раз не пишу (он есть и менять его я не могу), мне нужен только "клиент" к нему. Грубо гря - раньше присылали файлы по почте, теперь требуют использовать web-сервис. Взял я нужный WDSL-файл, создал на его основе consumer - и типы для передачи файлов сам Лотус определил (в библиотеке Consumer'а) как bytearray() as byte. При попытке подсунуть ему другие типы в функцию, он, ессно, ругается на несовместимость... Соббсно, вопрос - можно ли как-то обойти ограничение на размер массивов, используя другие типы - и как это сделать?
В web-сервисах я не силен, а код для обработки получаемых от сервиса данных старый, большой и весь написан для LS. Не хочется громоздить java-агентов отдельно....
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
Мыш
Я дёргал серверный ява-агент и результат сохранял в документ, потом полученные данные обрабатывал лс-скриптом. Попытка подключить ява веб-сервис-потребителя успехом не увенчалась ( Подключить Java Web-servece Consumer Через Ls2j). Код веб-сервис-потребителя дизайнер лотуса генерирует автоматически при импорте wsdl, вносить туда изменения можно, но с большими ограничениями, а при обновлении wsdl все правки будут потеряны. Можете попробовать заменить bytearray() as byte на NotesStream или String, только не забудьте задокументировать код.

Если для подключения к веб-сервису нужна авторизация см. тут.

Добавлено
В 8.5 на клиенте можно дёргать агента методом RunWithDocumentContext, "скармливая" ему несохранённый документ. Изменения полей, сделанные в этом документе агентом (в т.ч явовым), будут доступны после завершения агента.