• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Web Service

  • Автор темы Автор темы Cleric84
  • Дата начала Дата начала

Cleric84

Well-known member
03.01.2008
599
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)
все равно ошыбка.....
Может кто работал с датами в веб сервисе? помогите плз
 
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)
 
Если вы решились писать web-service'ы на Lotus Script. будьте готовы постоянно ходить по граблям несоответствия типов.
 
susinmn

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

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


garrick

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab