webMethods pub.client.http выдает ошибку на 401
Я использую webMethods из SAG и, кажется, если служба
pub.client.http
выдает исключение по коду статуса 401 "Несанкционированный".
Это приводит меня к проблеме, что я не могу обработать код состояния, потому что ничего не записывается в конвейер.
getLastError
содержит строку "Несанкционированный", но не код состояния. За исключением того, что я не хочу начинать анализ сообщений об исключениях...
Есть идеи?
4 ответа
Спросил SAG старший консультант. Это нормальное поведение. Нет флага, который вы можете установить для принудительного подавления этого исключения...
Вы можете подавить исключение и вернуть статус HTTP 401, как и любой другой ответ HTTP. Перейдите в расширенные настройки администратора IS и установите:
watt.net.http401.throwException=false
Обратите внимание, что это настройка для всего сервера, поэтому она повлияет на все ваши приложения/службы, использующие pub.client:http.
Выходной параметр header
от pub.client.http
Вызов должен содержать информацию, которую вы ищете:
Заголовок Документ Условный. Заголовки ответа HTTP.
Описание ключа
Строки Document Fields в заголовке ответа, где имена ключей представляют
имена и значения полей представляют значения полей.
status String HTTP-код состояния ответа.
statusMessage String HTTP-сообщение о статусе ответа.
Для получения дополнительной информации см. Справочную страницу по встроенным службам сервера интеграции WebMethods.
Согласно комментарию @Hugo Ferreira, вероятно, существуют ограничения ACL как в вашей среде webMethods, так и в URL ваших клиентов.
Вещи, которые вы должны рассмотреть:
Ваш сервер webMethods находится в закрытой среде, где необходимо подключиться к прокси, чтобы получить исходящий запрос. Что, вероятно, вы можете исследовать, запустив программу веб-браузера непосредственно с вашего сервера wM по направлению к URL-адресу (т.е. используя SSH для запуска firefox в моем случае, и появилось всплывающее окно)
У клиента, на который пойдет ваш запрос, есть HTTP для запросов аутентификации
Решение
Чтобы пройти это все, что вам нужно сделать, это ввести auth
user/password
или любой другой механизм аутентификации, например Kerberos, токен и т. д. внутри pub.client:http