2016-04-12 27 views
1

ich ein Drehbuch schreibe eine Einmündung Seite über die REST-API zu aktualisieren, mit:Confluence REST API Update-Problem: Das Objekt mit dem Namen Sync-rev ist kein String

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 

aber manchmal bekomme ich die folgende Fehler .

{"statusCode":500,"message":"java.lang.IllegalArgumentException: Property with name sync-rev is not a String"} 

Dies kann passieren, wenn ich die Seite manuell bearbeitet und gespeichert, oder es kann, ohne die Seite passiert manuell bearbeitet wurde.
Manchmal, wenn ich das Update erneut ausführen, funktioniert es, und manchmal bleibt es bestehen und gibt den gleichen Fehler.

Das Skript im Schreiben ist größer als das Hallo Welt-Beispiel, aber wenn ich eine neue leere Seite erstellt, über die REST-API aktualisiert, manuell bearbeitet und versucht habe, sie erneut zu aktualisieren (mit inkrementierter Version), habe ich die obengenannter Fehler.

Ich habe keine Erwähnung der Eigenschaft sync-rev anders als in diesem doc gefunden, aber es hat mir bei der Lösung meines Problems nicht geholfen.

Unsere Einmündung Version ist 5.9.6

Warum bin ich diesen Fehler, und was kann ich tun/ändern, so dass es weggeht?

Antwort

1

Ich habe das gleiche Problem und bat um Hilfe in der Atlassian Community. Sie können meine Frage unter https://answers.atlassian.com/questions/38379050/how-to-update-confluence-pages-using-rest-api

weiter folgen Ich kontaktierte den Support, da es mir scheint, dass dieses Problem ein Fehler bei Konfluenz ist. Ich werde Sie auf dem Laufenden halten.

Edit: Das ist es, was Atlassian schlägt vor:

  1. Backup, da diese erfordern eine manuelle Datenbank löschen die Datenbank
  2. die folgende SQL-Abfrage:
    // identifizieren, wie viele Einträge müssen gelöscht werden
    Wählen Sie count (distinct propertyid) von CONTENTPROPERTIES aus, wo propertyname = 'sync-rev';

    // löschen Sie alle Einträge löschen aus CONTENTPROPERTIES wo propertyname = 'sync-rev';
  3. Neustart Confluence-Instanz
  4. überprüfen, ob das Problem

besteht Bitte beachten Sie, dass ich noch ihre Lösung nicht überprüft haben.

+0

Da diese Eigenschaften auch auf neuen Seiten erstellt werden, gehe ich davon aus, dass sie nach einer Bereinigung neu erstellt werden. Daher denke ich nicht, dass dies eine Lösung ist. Klingt eher nach einem Workaround. Irgendwelche Neuigkeiten zu einem Fix? – AlexWerz

+0

Das Problem scheint mit Version 5.9.14 gelöst zu sein: https://jira.atlassian.com/browse/CONFSERVER-41493 – marcelscheid