2015-09-29 6 views
1

У меня есть процесс, который имеет 7 потоков, два из которых извлекают данные из пользовательского приложения для отдыха. Я использую клиент REST, чтобы вытащить его после получения маркера с использованием базовой аутентификации. transformationKettle: 400 Ошибка в вызове API RESTful

Вот трансформация, которая делает все это.

К сожалению, это только работает в Spoon. Я могу запустить весь родительский процесс в Spoon и получить действительный результат, однако, когда я попытался автоматизировать его, вызвав Kitchen из пакетного скрипта, вместо получения моих действительных данных я получаю ошибку 400, заявив, что у меня есть недопустимое имя хоста. Я могу сказать из журналов, что я использую правильный URL-адрес и даже получаю действительный токен, однако результирующие данные - это всего лишь ошибка 400. И это происходит только вне Spoon, независимо от того, какие разрешения я запускаю.

Это похоже на ошибку в Kettle, и я проводит обходной путь, однако любой совет приветствуется

UPDATE 1: Мы установили с владельцем сервера, что они При этом получатель не получающего запросы в их IIS, поэтому что-то на нашей стороне убивает запросы. Есть ли разница в уровнях разрешений между кухней и ложкой? Мы используем как самые высокие разрешения, так и администраторы, но при этом видим разницу

+0

Как имя хоста передавалось в «Rest Client» Шаг в поле или переменной? Общей ошибкой является использование переменной в jvm-контексте или переменной, определенной в Spoon, но не в работе. Во всяком случае, используйте очень простой инструмент отладки «Write Log» и поместите его перед шагом Rest Client. – simar

+0

URL-адрес передается в качестве параметра из вызова родительского задания на преобразование. И в журнале я вижу, что он использует правильный URL-адрес, когда он отмечает, что у него была задержка в 136 миллисекунд, прежде чем получить ответ от этого URL-адреса: 2015/09/29 23:20:16 - REST Get Data.0 - Время отклика (миллисекунды): [134] для [https: //valid.url.location? Programcode = set] – aa260022

+0

Мне не нравится стратегия передачи параметров от задания к трансформации. Это приводит к ошибке между ложкой и кухней. Общая ошибка для установки параметра преобразования и в целях тестирования присваивает ему значение по умолчанию. В то время как u использует Spoon, все кажется «ОК», но тогда вы используете ту же работу на кухне, он всегда будет использовать параметр по умолчанию, несмотря на то, что значение u переходит из задания, и похоже, что оно работает, но вы получаете неправильные данные. – simar

ответ

0

Мы отследили его до разницы в версии. Пакетный файл вызывал более старую версию Kettle, в то время как Spoon использовал более новую версию, которая исправляла эту ошибку.

0

, если вы получаете метод GET для извлечения данных с вашего api, попробуйте выполнить шаг HTTP-клиента , а не шаг REST.

Другая опция - двойная проверка настроек на шаге клиента Rest. Я не думаю, что это ошибка, я часто использую этот шаг.

ошибка 400 означает «плохой запрос», поэтому, что вы делаете: плохой запрос не ожидается от вашего api.

+0

Я буду тестировать, используя http-клиент, с методом get, однако, я думаю, я тестировал это. Кроме того, он даже не попадает в API, у нас был владелец, проверяющий их журналы журнала, и они не видят запросов, сделанных с помощью кухни или панорамирования. – aa260022

+0

Выполнение такого же запроса через HTTP-клиент ничего не меняет, то же 400 ошибок – aa260022