【问题标题】:Confluence REST API update issue: Property with name sync-rev is not a StringConfluence REST API 更新问题:名称为 sync-rev 的属性不是字符串
【发布时间】:2016-08-02 18:48:17
【问题描述】:

我正在编写一个脚本来通过 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 的提及,但它并没有帮助我解决我的问题。

我们的 confluence 版本是 5.9.6

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

【问题讨论】:

    标签: rest confluence confluence-rest-api


    【解决方案1】:

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

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

    编辑:这是 Atlassian 的建议:

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

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

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

    【讨论】:

    • 因为这些属性往往会在新页面上创建,我假设它们会在您进行清理后重新创建。因此,我认为这不是一个解决方案。听起来更像是一种解决方法。有修复的消息吗?
    • 5.9.14版本似乎解决了这个问题:jira.atlassian.com/browse/CONFSERVER-41493
    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多