• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Web Service

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Всем привет!

Вопрос следующий:

Когда вызываю сервис (для теста через лотусиного агента) и указываю параметры начинает ругатся на параметр который обявлен с типом дата

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"Web Service"</div></div><div class="sp-body"><div class="sp-content">Web Service Provider:

Web Service Provider:

Class Create_User_Card

Public Function Create_Card(u_name As String, u_mid_name As String, u_last_name As String, _
u_department As String, u_user_id As String, u_in_date As XSD_DATE) As String

code :D

End Function

End Class

Web Service Consumer:

%INCLUDE "lsxsd.lss"
Class Create_User_Card As PortTypeBase

Sub NEW
Call Service.Initialize ("UrnDefaultNamespaceCreate_User_CardService", _
"Create_User_CardService.Domino", "http://192.168.101.1:8080/Test/WebServiceDB.nsf/CreateUserCard?OpenWebService", _
"Create_User_Card")
End Sub

Function CREATE_CARD(U_NAME As String, U_MID_NAME As String, U_LAST_NAME As String, _
U_DEPARTMENT As String, U_USER_ID As String, U_DATE_IN As XSD_DATE) As String
Let CREATE_CARD = Service.Invoke("CREATE_CARD", U_NAME, U_MID_NAME, U_LAST_NAME, U_DEPARTMENT, U_USER_ID, U_DATE_IN)
End Function

End Class


Агент :

Option Public
Use "Create_User_Card"

Sub Initialize

Dim Create_User_Card As New Create_User_Card
Print Create_User_Card.Create_card("Petr", "Petrovich", "Kolobok", "IT", "5091513196", "2013-01-15")

End Sub

нарыл инфу о формате. вроде все ок... пробол с разными параметрами (2013-01-15, 2013-01-15+02:00, 2013-01-15Z, 2013-01-15+00:00)
все равно ошыбка.....
Может кто работал с датами в веб сервисе? помогите плз
 
S

susinmn

Public Function Create_Card(u_name As String, u_mid_name As String, u_last_name As String, _
u_department As String, u_user_id As String, u_in_date As XSD_DATE) As String

XSD_DATE
The proxy class mapped to XML Schema type date. Nillable.

SUB SetValueFromNotesDateTime (value As NotesDateTime)Sets the XML representation of the object from the NotesDateTime object. Any time zone information is ignored.

т.е.
Dim s as New NotesSession
Dim tmpDate as NotesDateTime
Dim tmpXSDDate as New XSD_Date

set tmpDate = s.CreateDateTime("18.02.2013")
Call tmpXSDDate.SetValueFromNotesDateTime(tmpDate)
..................
Print Create_User_Card.Create_card("Petr", "Petrovich", "Kolobok", "IT", "5091513196", tmpXSDDate)
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
189
Если вы решились писать web-service'ы на Lotus Script. будьте готовы постоянно ходить по граблям несоответствия типов.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
susinmn

Держите + ! Спасибо.

Но слепец я еще тот :) ..... вчера курил статью на ибм в которой была опись как работать с датой и времям.... и както я прошел мимо...мдя...


garrick

Ваш вариант: Java ?
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
189
Ваш вариант: Java ?
Теперь "Да". Потому как бывали проблемы не только с датами, но и банально с простыми строками. Приходилось скачивать wsdl файл локально, править его руками и только потом скармливать Domino Designer, что бы он сгенерил код, совместимый с работающим web-service'ом. В Java таких проблем нет, к тому же куча всяких библиотек для XML, XSL и пр. часто необходимых для разбора ответов и генерации запросов web-service. Всё равно ваш сервис или потребитель в Domino работает через Axis, только для Lotus Script это делается каким-то хитрым окольным путём. Второй положительный момент - Java код вы, при необходимости, можете оторвать от Domino и исполнять в дальнейшем в другой среде.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!