Confluence REST API更新问题:名称为sync-rev的属性不是String

时间:2016-04-12 09:05:01

标签: rest confluence confluence-rest-api

我正在编写一个脚本,通过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

为什么我会收到此错误,我可以做什么/改变以免它消失?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并在atlassian社区寻求帮助。您可以在https://answers.atlassian.com/questions/38379050/how-to-update-confluence-pages-using-rest-api

上关注我的问题

此外,我联系了支持部门,因为在我看来,这个问题在汇合时是一个错误。我将通过支持响应向您通报。

编辑:这就是Atlassian的建议:

  
      
  1. 备份数据库,因为这需要手动删除数据库
  2.   
  3. 运行以下SQL查询:
      //确定需要删除的条目数量   从CONTENTPROPERTIES中选择count(distinct propertyid),其中propertyname ='sync-rev';

      //删除所有条目   从CONTENTPROPERTIES中删除propertyname ='sync-rev';
  4.   
  5. 重新启动Confluence实例
  6.   
  7. 验证问题是否仍然存在
  8.   

请注意,我尚未验证他们的解决方案。