我已经有一段时间在我的PowerShell CI构建过程中对uDeploy命令行客户机(udclient)进行了脚本化的调用。
我的udclient调用的脚本如下:
udclient.cmd -weburl $uDeployServer -authtoken $authToken "importVersions" $requestJson..。我的JSON文件($requestJson)内容如下所示:
{
"component": "[uDeploy component name]",
"properties": {
"version": "[component version]"
}
}直到最近,这些请求以及随后的udclient版本部署请求一直按预期工作。然而,几周前,版本导入请求开始神秘地失败。
在uDeploy UI中,在组件配置的选项卡中,我可以看到失败的导入请求。
但是,当我打开输出日志进行检查时,它是空的。错误日志仅包含以下内容:
“版本导入失败的原因如下:JSONObject”值“未找到”。
从 UI导入uDeploy手动版本仍然可以像预期的那样工作。
此外,一旦应用了手动干预来完成CI构建中的版本导入,后续版本部署请求就会执行,而不会出现任何问题。
我不是Java专家,但在我看来,这个错误似乎表明JSON文件有问题。但是,要测试我的JSON (我使用的是PS 5,直到PS 6才使用test ),执行以下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文件中的编码有关?想法和洞察力得到赞赏;谢谢你的关注。
发布于 2020-03-18 13:11:17
我为本机PowerShell编写了REST调用脚本:
Invoke-RestMethod -Uri $uDeployServer/cli/component/integrate" -Method Put -Headers $headers -ContentType "application/json" -Body $json请求是毫无问题地发送的,但不幸的是,与udclient调用一样,同样的错误仍然存在。
查看uDeploy UI中的失败版本导入请求记录,除了错误日志中的模糊消息外,请求输入属性只显示两个属性(成功的请求显示来自组件配置的许多属性):
provided)
我在请求JSON中添加了一个新的属性“description”;文件内容现在如下所示:
{
"component":"[uDeploy component name]",
"properties":{
"version":"[component version]",
"description":"[description]"
}
}嘿普雷斯托!成功执行版本导入请求。
https://stackoverflow.com/questions/60672985
复制相似问题