我正在编写一个脚本,通过REST API更新汇合页面,使用:
curl -u user:password -X PUT -H 'Content-Type: application/json' -d'{"id":173390846,"type":"page","title":"test4","body":{"storage":{"value":"hello world","representation":"storage"}},"version":{"number":10}}' http://confluence.private.com/rest/api/content/173390846
但有时我会收到以下错误。
{"statusCode":500,"message":"java.lang.IllegalArgumentException: Property with name sync-rev is not a String"}
如果我手动编辑并保存了页面,可能会发生这种情况,或者如果没有手动编辑页面,就会发生这种情况 有时如果我再次运行更新它会工作,有时它会持续存在并产生相同的错误。
脚本即时编写比hello world示例更大,但是如果我创建了一个新的空白页面,通过REST API更新它,手动编辑它,并尝试再次更新它(增加版本)我得到了上面提到的错误。
除了doc之外,我还没有找到任何提及属性sync-rev的内容,但它没有帮助我解决我的问题。
我们的汇合版本是5.9.6
为什么我会收到此错误,我可以做什么/改变以免它消失?
答案 0 :(得分:1)
我遇到了同样的问题并在atlassian社区寻求帮助。您可以在https://answers.atlassian.com/questions/38379050/how-to-update-confluence-pages-using-rest-api
上关注我的问题此外,我联系了支持部门,因为在我看来,这个问题在汇合时是一个错误。我将通过支持响应向您通报。
编辑:这就是Atlassian的建议:
- 备份数据库,因为这需要手动删除数据库
- 运行以下SQL查询:
//确定需要删除的条目数量 从CONTENTPROPERTIES中选择count(distinct propertyid),其中propertyname ='sync-rev';
//删除所有条目 从CONTENTPROPERTIES中删除propertyname ='sync-rev';
- 重新启动Confluence实例
- 验证问题是否仍然存在
醇>
请注意,我尚未验证他们的解决方案。