1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Web Service

Тема в разделе "Lotus - Программирование", создана пользователем Cleric-Lviv, 19 фев 2013.

  1. Cleric-Lviv

    Cleric-Lviv Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    3 янв 2008
    Сообщения:
    600
    Симпатии:
    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)
    все равно ошыбка.....
    Может кто работал с датами в веб сервисе? помогите плз
     
  2. susinmn

    susinmn Well-Known Member

    Репутация:
    0
    Регистрация:
    16 окт 2007
    Сообщения:
    529
    Симпатии:
    8
    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)
     
  3. garrick

    garrick Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    26 окт 2009
    Сообщения:
    853
    Симпатии:
    68
    Если вы решились писать web-service'ы на Lotus Script. будьте готовы постоянно ходить по граблям несоответствия типов.
     
  4. Cleric-Lviv

    Cleric-Lviv Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    3 янв 2008
    Сообщения:
    600
    Симпатии:
    0
    susinmn

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

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


    garrick

    Ваш вариант: Java ?
     
  5. garrick

    garrick Well-Known Member
    Lotus team

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

Поделиться этой страницей