Ich möchte ein Java-Programm schreiben, um eine Schnittstelle zu testen, die über XML-Dateien über SFTP kommuniziert. Die Idee der Schnittstelle ist, dass eine Seite eine XML-Datei hochlädt, dann die andere Seite sie verarbeitet, sie löscht und eine andere XML-Datei als Bestätigung hochlädt.Wie speichere ich ein FileObject von SFTP als lokale Datei?
Was mein Programm tun soll, ist eine XML-Datei hochladen, warten, bis es verschwindet, warten auf die Antwort, speichern Sie es als lokale Datei und überprüfen Sie dann die Richtigkeit der Antwort. Ich habe dies mit org.apache.commons.vfs2 und FileObjects implementiert und kann erfolgreich eine xml-Datei hochladen, warten, bis sie verschwindet und das Vorhandensein der Bestätigungsdatei prüfen. Aber sobald ich versuche, die Datei als Dokument zu analysieren, den Code mit
FileObject ackFileObject = VFS.getManager().resolveFile("sftp://[email protected]/SFTPfolder/file.xml");
File ackFile = new File(ackFileObject.getName().getPath());
DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(ackFile);
ich eine FileNotFoundException bekommen, weil die Document die Datei von "C:/SFTPfolder/"
zu lesen versucht, anstatt sie aus dem Projektpfad zu lesen. Auch "new File(ackFileObject.getName().getPath());"
erstellt keine neue Datei.
Gibt es eine einfache Lösung, um dies zu beheben? Wie kann ich eine FileObject
von VFS.getManager().resolveFile()
als lokale Datei speichern, damit ich es als Dokument analysieren kann?