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 についての言及は見つかりませんでしたが、問題の解決には役立ちませんでした。

Confluence のバージョンは 5.9.6 です

このエラーが発生するのはなぜですか? また、エラーが発生しないようにするにはどうすればよいですか?

4

1 に答える 1

1

私は同じ問題を抱えており、アトラシアン コミュニティで助けを求めました。https://answers.atlassian.com/questions/38379050/how-to-update-confluence-pages-using-rest-apiで私の質問に従うことができます

さらに、この問題は合流点でのバグであると思われるため、サポートに連絡しました。サポートの回答を更新し続けます。

編集: これはアトラシアンが提案するものです:

  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 に答える