Проблема Ошибка вызова WS Consumer из локальной базы на клиенте

  • Автор темы Автор темы BVK
  • Дата начала Дата начала
  • Теги Теги
    ws consumer
Клиент LotusNotes v.9.0.1. Есть база, установленная локально на клиенте. Из WSDL сгенерировал LS-классы для WS Consumer, далее написал агент для вызова сервиса. При вызове получаю ошибку:
Web Service ML method helloWorld error: Error connecting to 'apitest.merlion.com' on port '443', You must enable the Notes TCPIP port.
Как это преодолеть?
 
443 порт наверное хочет авторизации - имя, пароль или сертификат.
 
Меня смущает, что в notes.ini вообще ничего нет про порт 443.
 
Меня смущает, что происходит это на локале, в рамках клиента.
Или у вас локальный сервер?
Если это в рамках клиента, то там нет задачи http, но ее можно включить запустив nhttp из папки лотуса.
 
Меня смущает, что происходит это на локале, в рамках клиента.
Или у вас локальный сервер?
Если это в рамках клиента, то там нет задачи http, но ее можно включить запустив nhttp из папки лотуса.
Спасибо за подсказку!
Сервера нет, один клиент на компе, база - на клиенте - т.е. минимальная кофигурация для запуска базы. Да ещё восхотелось вызывать чужой web-сервис, да ещё с "с шифрованием трафика по протоколу TLS версий 1.0, 1.1, 1.2". С этим TLS ещё впереди разбираться, как и что про него в классы WS Consumer'а запихнуть...

Узнал, что пара строк в Notes.ini
TCPIP=TCP,0,15,0
Ports=TCPIP
и выбор подходящего Location (с обслуживанием TSP/IP) сильно помогают проблеме. Теперь получаю:

Web Service MLPort_n0 method helloWorld error Error connecting to 'apitest.merlion.com' on port '443', SSL bad peer certificate. Connection refused.
 
Последнее редактирование:
Установите локальный сервер, у меня стойкое ощущение, что на клиенте http задача слушает только 80-й порт и никакой ssl по 443-му не получить, можно попробовать поменять в дизайнере для http preview, но это не точно.
про поддержку ssl на локале - вообще сомнительно.
1608367619176.png


Настройки, которые указаны, это для клиента в первую очередь, на сервере есть аналогичные, но в данном случае они несут другой смысл, это параметры подключение клиента к серверу: тип протокола и настройка портов.
Локейшены тоже отвечают за другое: либо для переключения на разные среды, либо для режима онлайн/оффлайн, либо для разных технологий подключения, но они не влияют на локальную задачу http.
 
По http (не https) коннектиться не пробовали? Какой адрес для endpoint используете?
 
Проблема решена!
Спасибо всем за советы и подсказки!
Выяснилось, что поддержка TLS 1.2 включена в Domino-9.0.1, начиная только с FixPack-3, а в FixPack-4 исправлены несколько ошибок, связанных с TLS (в Domino-11 включена уже поддержка TLS 1.3).

Для того, чтобы из клиента через WebServiceConsumer вызывать чужой web-сервис по протоколу TLS 1.2, нужно выполнение нескольких условий:
1) в notes.ini клиента должна быть пара строк для работы через TCPIP
Код:
TCPIP=TCP,0,15,0
Ports=TCPIP
2) должно быть выбрано расположение (Location) с использованием TCP/IP (например, "Работа(сеть")
3) в инициализацию WebServiceConsumer нужно добавить пару строк для криптопротокола: логин/пароль и параметры протокола:
Код:
    Sub NEW
        Call Service.Initialize ("HttpsApitestMerlionComReMlservice3MLService", _
                                          "MLService.MLPort", "https://apitest.merlion.com/re/mlservice3", "MLPort_n0")
        ' userid and password
        Call Service.SetCredentials (<логин>, <пароль>)
        ' set SSL options
        Call Service.SetSSLOptions (NOTES_SSL_ACCEPT_SITE_CERTS+NOTES_SSL_ACCEPT_EXPIRED_CERTS) ' из lsxsd.lss
    End Sub
4) для клиента Notes-9.0.1 должен быть установлен свежий FixPack (у нас нашёлся FP3)
5) установили на этот компьютер сервер Domino-9.0.1 (его службы отключили) и установили его FixPack-10 (такой нашлось). Нет абсолютной уверенности, что этот шаг необходим, но в процессе установки FixPack на Domino он пишет "Notes update ...".

После этого агент на клиенте благополучно вызывает через WebServiceConsumer чужой web-сервис, при этом лотус автоматически заменяет протокол SSL на TLS 1.2. Есть большая уверенность, что и серверные агенты на этом сервере будут тоже вести себя аналогично.[/code]
 
Последнее редактирование:
  • Нравится
Реакции: lmike и VladSh