Ist es möglich, Dateien zu schreiben, um eine remote-Verzeichnis mit java?
Habe ich das Verzeichnis gemappt auf meinem Rechner, so dass ich kann surfen und schreiben, um es über den Windows-explorer. Ich möchte schreiben von Dateien via java.
File f = new File("http://dev1:8080/data/xml/myTestFile123.xml");
f.createNewFile();
Ich erhalte die folgende Fehlermeldung:
Exception in thread "main" java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at MainTest.createTestFile(MainTest.java:156)
at MainTest.main(MainTest.java:72)
Gibt es eine Möglichkeit, Dateien zu schreiben, um ein zugeordnetes Verzeichnis, http://vor? Denn das ist der Weg, das Verzeichnis für mich. Es ist ein virtuelles Verzeichnis, das eine oracle-Datenbank erstellen.
Sie können nicht-Schuhlöffel eine HTTP-URL in ein File-Objekt. Sie sind zwei völlig verschiedene Dinge.
Wie kann ich die richtigen Dateien auf dieses Laufwerk dann?
die Tatsache, dass Ihre Datei befindet sich auf dev1:8080/data/lo/xml stark darauf hin, dass Sie bei uns ein directory-listing über eine Website. Sie können nicht schreiben, Dateien über http. Sie sind in der Lage, um Sie hochzuladen, aber etwas, auf das andere Ende muss so konfiguriert sein, empfangen und speichern Sie Sie, es ist nicht einfach ein Datei-öffnen-speichern, wie Sie ein Verzeichnis auf Ihrer Festplatte.
sind Sie versuchen, zu schreiben, zu einem Netzwerkfreigabe oder webdav-server? Ich fange an zu denken, dass Sie versuchen zu schreiben, um die webdav-Verzeichnis...
Es ist ein virtuelles Verzeichnis, das auf einer oracle-Datenbank ist die Bereitstellung von
Wie kann ich die richtigen Dateien auf dieses Laufwerk dann?
die Tatsache, dass Ihre Datei befindet sich auf dev1:8080/data/lo/xml stark darauf hin, dass Sie bei uns ein directory-listing über eine Website. Sie können nicht schreiben, Dateien über http. Sie sind in der Lage, um Sie hochzuladen, aber etwas, auf das andere Ende muss so konfiguriert sein, empfangen und speichern Sie Sie, es ist nicht einfach ein Datei-öffnen-speichern, wie Sie ein Verzeichnis auf Ihrer Festplatte.
sind Sie versuchen, zu schreiben, zu einem Netzwerkfreigabe oder webdav-server? Ich fange an zu denken, dass Sie versuchen zu schreiben, um die webdav-Verzeichnis...
Es ist ein virtuelles Verzeichnis, das auf einer oracle-Datenbank ist die Bereitstellung von
InformationsquelleAutor joe | 2009-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Verständnis ist, dass Sie versuchen zu schreiben, um eine Oracle-XML-DB-Repository. Oracle-XML-DB-Repository ist ein feature, das eingeführt wurde, indem Sie Oracle 9i Database Release 2 für XML-Speicherung und der Zugriff durch FTP-oder HTTP - /WebDAV. In Ihrem Fall, es sieht aus wie Sie versuchen, verwenden Sie HTTP/WebDAV.
Wie in der WedDAV Seite auf Wikipedia:
In anderen Worten, das hinzufügen von Dateien, löschen, umbenennen, etc in einen WebDAV-repository erfolgt über HTTP-Wörter: SETZEN, LÖSCHEN, VERSCHIEBEN, etc (siehe RFC 4918 für mehr details).
Daher, die Interaktion mit einem WebDAV-server kann getan werden, mit Klassen von
java.net
.Oder Sie könnten eine höhere level-API, wie Jakarta-Commons-HttpClient.
Oder man könnte ein Java-WebDAV-client wie den von der Schieben Projekt. Diese Artikel zeigt, wie es geht und es sieht einfach aus. Jedoch, als das Dia-Projekt ist jetzt im Ruhestand, würde ich es nicht empfehlen.
Glücklicherweise (oder auch nicht), die Apache Jackrabbit Projekt ist eine alternative zu Schieben... aber AFAIK WebDAV-support in Jackrabbit ist mehr konzentrierte sich auf die server-seitigen Implementierungen als Kunden. Wie auch immer, Sie ' ll finden Sie einige code-Beispiele in dieser thread auf der jackrabbit-users-mailing-Liste.
Ich glaube, ich würde wählen, HttpClient und verwenden Sie die Tutorial oder die Beispiel-Code als Ausgangspunkt.
InformationsquelleAutor Pascal Thivent
Ich bin mir nicht wirklich sicher, was ich Rede, hier (und nicht eine Java-Typ), aber obwohl Sie "abgebildet" sind Sie vorbei, die in einem URL anstelle einer erwarteten Datei-system-Pfad. Wenn (zum Beispiel) haben Sie ein zugeordnetes Laufwerk unter Windows verwenden Sie den Laufwerkbuchstaben zugewiesen.
InformationsquelleAutor Andrew Flanagan
Ihren versuchen, übergeben Sie den Standort URI mit einem Protokoll. Sie brauchen, um passieren Standort sans-Protokoll:
Wenn Ihr Probleme haben, die richtige Zeichenfolge für die URI, dann würde ich navigieren Sie zu der Datei im explorer, und kopieren Sie dann das Verzeichnis aus der Adresszeile.
der Lage dev1:8080/data/xml kam von der url-Leiste
InformationsquelleAutor Greg Buehler
Anstatt zu versuchen, mit einem Laufwerkbuchstaben (scheint sehr schwach), haben Sie einen Blick auf JCIFS:
Dieses Stück code zeigt, wie Anmeldung an einem Remote-Rechner und Schreiben-Datei mit jCifs (credits Muneeb Ahmad):
Bearbeiten: Wie bereits erwähnt, in einem Kommentar Hinzugefügt, um die ursprüngliche Frage, mein Verständnis ist nun, dass Sie versuchen zu schreiben, um ein WebDAV-Verzeichnis. Ich werde die WebDAV-Thema in einer anderen Antwort für mehr Klarheit.
Sie haben nicht http:// drin. HTTP ist nicht ein Protokoll für die Arbeit mit remote-Dateisysteme. SMB ist ein anderes Protokoll, das für die Arbeit mit remote file Systeme, und ist derjenige, der Pascal erzählt, wie Sie zu verwenden.
Auch meine remote-Verzeichnis ist ein virtuelles Verzeichnis erstellt, indem eine oracle-Datenbank, es ist nicht wirklich da.
InformationsquelleAutor Pascal Thivent
Wie haben Sie das Mapping-Datei in Windows? Ich vermute, es ist nicht über das HTTP-Protokoll, weil kein solcher Mechanismus existiert für die Erstellung von Dateien. So bekommen Sie nicht überall mit "http" als Protokoll.
Finden Sie die Laufwerkbuchstaben, die Sie wahrscheinlich wollen etwas, das mehr wie:
Wenn Sie mit Samba, möchten Sie vielleicht werfen Sie einen Blick auf JCIFS dann können Sie verwenden:
InformationsquelleAutor Nosrama
Verwenden Sie den lokalen Pfad
Wenn Sie sehen können
myTestFile123.xml
im windows-explorer, dann mit der rechten Maustaste darauf und kopieren Sie dieLocation:
- Eigenschaft-Wert. Dann verwenden Sie genau diese als neue Datei () - argument, aber entweder verdoppeln Sie die backslashes oder ändern Sie Sie durch Schrägstriche.Oh...als du sagtest, "windows-explorer" haben Sie wirklich gedacht, "internet explorer"?
keine seiner windows-explorer. Zugeordnetes Laufwerk.
InformationsquelleAutor DigitalRoss