0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
1 | |
Альтернатива Mssoap По Работе С Веб-сервисом10.02.2013, 11:27. Показов 25872. Ответов 32
Метки нет Все метки)
(
Доброго дня.
Подтолкните куда смотреть. Есть доминошный веб сервис, надо с ним "пообщатся", MSSOAP - отваливается т.к. не работает на win server 2008. Идеальная схема через LS агент.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
10.02.2013, 11:27 | |
Ответы с готовыми решениями:
32
Написать веб-сервис, который будет общаться по http c другим веб-сервисом SecurityException при работе с Web-сервисом Просьба Помочь С Веб-сервисом Интеграция с веб сервисом - Омнива |
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
|
10.02.2013, 11:33 | 2 |
может подойдет, посмотрите этот вариант через бридж - http://dpastov.blogspot.com/2010/11/very-n...oap-client.html
0
|
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 256
|
|
10.02.2013, 12:12 | 3 |
![]()
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
10.02.2013, 13:35 | 4 |
![]()
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
10.02.2013, 13:45 | 5 |
Есть веб сервис, например с таким кодом (взято из примера, где работа идет с SOAP)
Код
Declare global variables accessible from all parts of thys Web service. Dim session As NotesSession Dim nabdb As NotesDatabase Dim nabdoc As NotesDocument Dim nabview As NotesView Dim item As NotesItem Create a LotusScript class. Class GetPersonInfo Sub New can be used to assign values to global variables. Here we can set our session object. Sub New Set session = New NotesSession End Sub GetPhoneNumber accepts name of a person as function argument. We set output type to data type String. Public Function GetPhoneNumber(personname As String) As String If persons document is not already found in previous actions, find it now If nabdoc Is Nothyng Then Locate a document using our search function result=GetPersonDocument(personname) End If If result<>"OK" Then If no person document is found, return the error message we got from the GetPersonDocument function GetPhoneNumber="ERROR: "+result Exit Function Else If person document is found, return content of OfficePhoneNumber field We use our GetPersonField reusable function for getting field’s content GetPhoneNumber=GetPersonField("OfficePhoneNumber") End If End Function Public Function GetEmailAddress(personname As String) As String If nabdoc Is Nothyng Then If persons document is not already found in previous actions, find it now result=GetPersonDocument(personname) End If If result<>"OK" Then If no person document is found, return the error message we got from the GetPersonDocument function GetEmailAddress="ERROR: "+result Exit Function Else If person document is found, return content of MailAddress field We use our reusable function for getting field’s content GetEmailAddress=GetPersonField("MailAddress") End If End Function End Class Private Function GetPersonDocument(personname As String) As String Set nabdb=session.CurrentDatabase Set nabdb=New NotesDatabase("","names.nsf") Check that database exists and was opened If Not (nabdb.IsOpen) Then GetPersonDocument= "Error opening database" Exit Function End If Set nabview = nabdb.GetView("($Users)") Check that view exists in the database If nabview Is Nothyng Then GetPersonDocument = "Error opening view" Exit Function End If Get a document by search key Set nabdoc = nabview.GetDocumentByKey(personname, True) If nabdoc Is Nothyng Then GetPersonDocument = "Cannot find person" Exit Function End If global nabdoc object was set correctly and we can return OK GetPersonDocument="OK" End Function Private Function GetPersonField(FieldName As String) Get item object. Global object nabdoc was set earlier in GetPersonDocument function. Set item=nabdoc.GetFirstItem(FieldName) Sometimes item does not exist in the document, it’s not an error so we return an empty string. If item Is Nothyng Then GetPersonField="" Exit Function Else Return first value of the item GetPersonField=Cstr(item.Values(0)) End If End Function Код
Set Client =CreateObject("MSSOAP.SoapClient30") Call Client.mssoapinit ("http://сервак/база/SimpleLSServiceNAB?wsdl") result = Client.GetPhoneNumber(personname)
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
10.02.2013, 14:06 | 6 |
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
10.02.2013, 14:37 | 7 |
lmike
чето я туплю, не вижу там примера. если не трудно под "SimpleLSServiceNAB" пример вызова? в примере код для Java библиотеки как я понял, причем там веб-сервис не совсем понятно...
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||||||
10.02.2013, 18:35 | 8 | |||||
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
11.02.2013, 10:07 | 9 |
lmike
Этот кусок кода я видел, не понимаю как он применим в указанном мной примере.
0
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
|
11.02.2013, 10:56 | 10 |
kizarek, а почему не рассматриваете вариант как сказал Dragon108 ?
По моему так проще всего сделать
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
11.02.2013, 11:23 | 11 |
Хотелось уж с этим разобраться)
Щас попробую через Web Services Consumers.
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
11.02.2013, 12:05 | 12 |
С эти тоже траблы)
Курю этот мануал www.ibm.com/developerworks/ru/library/domino-webservices/ Скачал axis (http://www.sai.msu.su/apache/ws/axis/1_4/) Как добавить библиотеки из него в lotus?)
0
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
|
11.02.2013, 12:28 | 13 |
kizarek Создаешь Web Service Consumer импортиоруешь в него WSDL (http://сервак/база/SimpleLSServiceNAB?wsdl), в нем появятся описание классов, сохраняешь.
В агенте добавляешь use "Имя Web Service Consumer" и используешь в нем описанные классы из Web Service Consumer
0
|
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 812
|
|
11.02.2013, 12:31 | 14 |
Создайте в дизайнере новый Web Services Consumer, укажите ему wsdl файл сервиса, либо локально как файл, либо через url. Дизайнер сам сгенерит вам код вызова процедур сервиса на Lotus Script или Java. Затем в своём коде подключите этот сгенерённый Web Services Consumer в качестве библиотеки и пользуйтесь сгенерёнными процедурами. Если планируете использовать Lotus Script, могут быть проблемы с типами данных. Проблемы решаемы... Никакой axis скачивать никуда не надо, в лотусе уже всё есть.
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
11.02.2013, 12:55 | 15 |
Web Service Consumer != Web Service?
0
|
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 1,063
|
|
11.02.2013, 13:00 | 16 |
Consumer - это клиент для сервиса.
0
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
|
11.02.2013, 13:02 | 17 |
kizarek
Если у Вас клиент семерка, там вроде нет разделения на Consumer и Provyder, там просто Web service
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
||||||
11.02.2013, 13:16 | 18 | |||||
8.0.2
я правильно понимаю что нужно: 1. Создаем веб-сервис. Пример выше "SimpleLSServiceNAB". 2. Сохраняем его как SimpleLSServiceNAB.wsdl 3. Создаем еще 1 веб-сервис (SimpleLSServiceNAB_NEW), импортим в него wsdl, получаем такой код:
0
|
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 256
|
|
11.02.2013, 13:43 | 19 |
![]() Но при таком подходе есть и минус - при каждом изменении web-сервиса, чью wsdl вы импортите (в данном примере это веб-сервис SimpleLSServiceNAB и его SimpleLSServiceNAB.wsdl) придется скорее всего заново импотрить эту wsdl в web service consumer (здесь - SimpleLSServiceNAB_NEW). (но может и будет работать, если изменения в сервисе SimpleLSServiceNAB не серьезные ) И не факт что сложные и нестандартные лотусовые типы, которые есть в wsdl, распарсятся вам в типы, методы и классы так же, как и в предыдущий раз - тупо может просто поменяться их префикс :( С MSSOAP конечно в этом плане попроще, но зато Web Service consumer работает как часы, а не через пень колоду Вот была тема:
0
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|||||||||||
11.02.2013, 14:12 | 20 | ||||||||||
веб-сервис как библиотеку лотус не дает объявить. может таки как consumer нужно делать библиотеку?
Добавлено: Если объявлять как библиотеку то такой код
0
|
11.02.2013, 14:12 | |
Помогаю со студенческими работами здесь
20
Ошибка при обмене данных с веб сервисом Android аппликация работаюшея с веб сервисом на .net(c#) Как добавить http авторизацию (http authorization header) при работе с web-сервисом?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |