2017-07-25 5 views
1

Versuchen, ein Dokument von einem Ort zu lesen und an einen anderen Ort zu schreiben. Verwenden von DocumentMetadataHandle zum Abrufen von Metadaten und InputStreamHandle zum Lesen von Inhalten. Für schreiben, wenn ich das gleiche InputStreamHandle benutze, das ich für die gelesene Wurfstromgeschlossene Ausnahme verwendete. Das Gleiche passiert nicht, wenn ich DocumentMetadataHandle nicht im Lesevorgang verwende. Code a unten. Mit Java-Client-API 3.0.7Lesen und schreiben mit DocumentMetadataHandle und InputStreamHandle

XMLDocumentManager documentManager = client.newXMLDocumentManager(); 
Transaction transaction = client.openTransaction(); 
InputStreamHandle handle = new InputStreamHandle(); 
DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); 
documentManager.read(uri, metadataHandle, handle,transaction); 
documentManager.write(newUri, metadataHandle, handle, transaction); 
+2

Danke, Siju, ich glaube, Sie haben einen Fehler gefunden. Eriks Lösung sollte Ihnen eine Lösung bieten. Allerdings habe ich dies in GitHub angemeldet, so dass wir es adressieren können: https://github.com/marklogic/javaclient-api/issues/783 –

+0

Eriks SOlution? –

+0

Der Post von ehennum, unten, das schlägt vor, BytesHandle zu verwenden. – kcoleman

Antwort

1

Wenn Sie das Dokument im Speicher puffern wollen zurück an den Server zu schreiben, könnten Sie anstelle eines InputStreamHandle mit BytesHandle.

DocumentMetadataHandle puffert die Metadaten.