1

我正在编写一个脚本来通过 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 对其进行更新,手动编辑它,然后尝试再次更新它(版本递增),我得到了上述错误。

除了这个文档之外,我没有发现任何关于属性 sync-rev 的提及,但它并没有帮助我解决我的问题。

我们的合流版本是 5.9.6

为什么我会收到此错误,我可以做什么/更改以使其消失?

4

1 回答 1

1

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

此外,我联系了支持人员,因为在我看来这个问题是汇合时的错误。我会及时向您提供支持响应的最新信息。

编辑:这就是 Atlassian 的建议:

  1. 备份数据库,因为这需要手动删除数据库
  2. 运行以下 SQL 查询:
    // 确定需要删除多少条目
    select count( distinct propertyid) from CONTENTPROPERTIES where propertyname='sync-rev';

    // 删除所有条目 delete from CONTENTPROPERTIES where propertyname='sync-rev';
  3. 重启 Confluence 实例
  4. 验证问题是否仍然存在

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

于 2016-04-13T15:43:20.603 回答