2009-08-07 4 views
2

Ich versuche eine Shape-Datei mit REST API hochzuladen. Hier ist der Fehler, den ich bekommen: Eine solche Datenspeicher: WS1, neteREST Hochladen eines Shapefiles

I Version 1.7.5 zusammen mit dem restconfig-1.7.5.jar Plugin installiert haben. Hier

ist, was ich tue: 1) Erstellen Arbeitsplatz ws1

curl -u Admin: geoserver -v -XPOST -H 'Content-type: text/xml' -d ‚ws1'localhost: 8080/Überprüfen geoserver/rest/Workspaces

2) Arbeitsplatz

curl -XGET -H 'Accept: text/xml' localhost: 8080/geoserver/rest/Workspaces/WS1

Antwort ist ok

3) Laden Sie Shape-Datei

curl -u Leiter: geoserver -XPUT -H 'Content-type: application/zip' --data-binary @ roads.zip localhost: 8080/geoserver/rest/Workspaces/WS1/Datenspeicher /roads/file.shp

Antwort:

Warnung: Kann nicht Daten aus der Datei "roads.zip" lesen, das macht eine leere POST. Fehler beim Entpacken der Datei: Fehler beim Öffnen des Reißverschlusses

brauche bitte Hilfe !!!

Antwort

2

Ich habe mir heute das selbe Problem gestellt und es endlich gelöst. Ich betreibe Geoserver 2.0.2 mit REST-Erweiterung.

Die folgenden curl Befehl funktioniert:

curl -u admin:geoserver -v -XPUT -H 'Content-type: application/zip' --data-binary @/home/shape.zip http://localhost:8085/geoserver/rest/workspaces/ws/datastores/test1/file.shp 

Die „Datei“ vor „.shp“ willkürlich ist, verwenden Sie, was Ihnen gefällt.

"test1" ist der Name des neuen Datenspeichers.

"/home/shape.zip" ist der Pfad zu einem gezippten Shapefile. Hinweis: Ein Shapefile besteht aus mehreren Dateien! Eine Einführung finden Sie in Wikipedia. Eine gezippte Shapefie für Geoserver sollte mindestens .shp, .dbf, .shx, .prj enthalten.

Wenn Sie in Java entwickeln, möchten Sie möglicherweise einen Java-Client verwenden, um Geoserver über REST zu konfigurieren. GSRCJ ist ein sehr kleiner (2 Klassen, keine Abhängigkeiten) Client, der in Java 1.5+ geschrieben wurde. Es handelt sich nicht um eine vollständige Implementierung, sondern um funktionierenden Code zum Laden eines Shapefiles in Geoserver und mehr. Siehe den Code here.

+0

müssen wir shp-Datei gezippt werden? Können wir das Shapefile nicht direkt hochladen? – Sam007

+0

Nun, ein Shapfile besteht aus vielen einzelnen Dateien, also ist ein ZIP nützlich (und ja, benötigt), um alle Dateien zusammen zu setzen. Siehe Wikipedia für eine Beschreibung der vielen verschiedenen Dateien, die Teil einer "Shapefile" sind http://en.wikipedia.org/wiki/Shapefile – alfonx

+0

danke für die Info @alfonx, aber ich wollte diese 'curl' Methode zum Hochladen verwenden die shp direkt ohne es zu zippen, http://docs.geoserver.org/stable/en/user/restconfig/rest-config-examples/rest-config-examples-curl.html#adding-an-existing-shapefile. Ist das möglich? Ich versuche es, aber es gibt mir diesen Fehler, http: //gis.stackexchange.com/questions/40601/why-is-the-curl-Syntax-unable-to-create-datastore – Sam007