Lotus Web Service Consumer + Http Авторизация - Как?

Тема в разделе "Lotus + Java + LS2J", создана пользователем nvyush, 13 апр 2012.

  1. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Здравия всем!

    Возникла необходимость подключить Lotus к веб-сервису 1С. Для доступа к сервису необходима стандартная http-авторизация (в post-запрос добавить свойство "Authorization" = "Basic " + encoding, где encoding = BASE64("LOGIN:pASSWORD")). В браузере подключаюсь к серверу, прохожу авторизацию, получаю wsdl, импортирую в Lotus, получаю кучу джава кода. Внимание вопрос — куда, в какой класс, нужно вкрутить эту пару строк:
    <!--shcode--><pre><code class='java'>String encoding = new sun.misc.BASE64Encoder().encode("LOGIN:pASSWORD".getBytes());
    urlConnection.setRequestProperty("Authorization", "Basic " + encoding);[/CODE]
    Можно было бы, конечно, написать post-запрос вызова сервиса "в ручную", но в нём много функций и не хотелось бы делать кучу лишней работы.
     
  2. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    urlConnection это java.net.URL объект. Он вроде встречается только в XXX_ServiceLocator в паре мест. Туда и пихать.

    ПС: Сам не пробовал. Так, поумничать решил... :)
     
  3. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если бы это было так, я бы не справшивал. urlConnection это объект класса java.net.HttpURLConnection.
    В сгенерированном классе XXXLocator есть функция с параметром типа java.net.URL, но это не одно и то же.
     
  4. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Тогда ещё поумничаю... :)
    А если в XXX_Stub добавить:
    Код (Text):
    _call.setUsername("");
    _call.setPassword("");
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Автоподстановка в дизайнере 8.5.3 рулит! Все мои мучения помимо скудности инфы были также связаны с использованием дизайнера 8.0.1 (без автоподстановки в java).
    Итого:
    1) добавил в класс XXXLocator два поля:
    <!--shcode--><pre><code class='java'> private final String password;
    private final String userName;[/CODE]
    2) переписал конструктор класса XXXLocator в виде:
    <!--shcode--><pre><code class='java'> public LWSLocator(String u, String p) {
    super("HttpLocalhostLotusLWS");
    userName = u;
    password = p;
    }[/CODE]
    3) добавил в методы getLWSSoap(java.net.URL portAddress) и getPort(Class serviceEndpointInterface) строки
    <!--shcode--><pre><code class='java'> if (userName.length() > 0) _stub.setUsername(userName);
    if (password.length() > 0) _stub.setPassword(password);[/CODE]
    Спасибо Zeka за наводку
    Добавлено
    Другой вариант:
    http://www-10.lotus.com/ldd/ddwiki.nsf/dx/...ox_code_element
    А так это выглядит на LS
    http://www-10.lotus.com/ldd/nd8forum.nsf/G...55?OpenDocument
    Почему IBM не потрудилась включить это в справку?
     
Загрузка...
Похожие Темы - Lotus Web Service
  1. lmike
    Ответов:
    4
    Просмотров:
    764
  2. GnomE
    Ответов:
    9
    Просмотров:
    2.674
  3. Реник
    Ответов:
    8
    Просмотров:
    5.509
  4. Rahmatov
    Ответов:
    20
    Просмотров:
    1.137
  5. KhNarg
    Ответов:
    7
    Просмотров:
    1.195

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