У меня уже был сценарий PowerShell для клиента командной строки IBM uDeploy (udclient) в процессе сборки моего TFS CI в течение некоторого времени.
Мой вызов udclient написан так:
udclient.cmd -weburl $uDeployServer -authtoken $authToken "importVersions" $requestJson
... и содержимое моего файла JSON ($ request Json) выглядит следующим образом:
{
"component": "[uDeploy component name]",
"properties": {
"version": "[component version]"
}
}
Эти запросы и последующие запросы на развертывание версии udclient работали должным образом до недавно. Однако через пару недель go запросы на импорт версии начали таинственным образом завершаться сбоем.
В пользовательском интерфейсе uDeploy на вкладке Журнал импорта версий в конфигурации компонентов я могу увидеть неудачные запросы на импорт.
Однако, когда я открываю выходной журнал для проверки, он пуст. Журнал ошибок содержит только следующее:
"Не удалось импортировать версию по следующим причинам: JSONObject [" value "] не найден."
Версия вручную импорт из пользовательского интерфейса uDeploy по-прежнему работает , как и ожидалось.
Кроме того, после применения ручного вмешательства для завершения импорта версии в сборке CI, запрос развертывания последующей версии выполняется без проблем .
Я не эксперт в Java, но мне показалось, что ошибка подсказывает, что с файлом JSON что-то не так. Однако, чтобы проверить мой JSON (я использую PS 5, без Test- Json до PS 6), выполните следующий скрипт PowerShell:
try {
$json = Get-Content -Path [component version import].json | ConvertFrom-Json
Write-Host "JSON is valid."
} catch {
Write-Host "JSON is dodgy."
}
... возвращает:
JSON действительно.
Итак, что происходит? Может быть это связано с кодировкой в файле JSON или чем-то подобным? Идеи и идеи приветствуются; спасибо за поиск.