Hi,
I installed importer extension on geoserver 2.10.1 and I have a problem to
import shapefile into a postgis table in append. I execute this steps:
1. post on http://192.168.1.193:8080/geoserver/rest/imports of this json
{
"import": {
"targetStore": {
"dataStore": {
"name": "db_public"
}
},
"targetWorkspace": {
"workspace": {
"name": "cite"
}
}
}
}
with response:
{
"import": {
"id": 7,
"href": "http://192.168.1.193:8080/geoserver/rest/imports/7",
"state": "PENDING",
"archive": false,
"targetWorkspace": {
"workspace": {
"name": "cite"
}
},
"targetStore": {
"dataStore": {
"name": "db_public",
"type": "PostGIS"
}
},
"tasks": []
}
}
2. post on http://192.168.1.193:8080/geoserver/rest/imports/1/tasks of a
shapefile zip with this response:
{
"task": {
"id": 0,
"href": "http://192.168.1.193:8080/geoserver/rest/imports/7/tasks/0
",
"state": "READY",
"updateMode": "CREATE",
"data": {
"type": "file",
"format": "Shapefile",
"file": "area1.shp"
},
"target": {
"href": "
http://192.168.1.193:8080/geoserver/rest/imports/7/tasks/0/target",
"dataStore": {
"name": "db_public",
"type": "PostGIS"
}
},
"progress": "
http://192.168.1.193:8080/geoserver/rest/imports/7/tasks/0/progress",
"layer": {
"name": "area1",
"href": "
http://192.168.1.193:8080/geoserver/rest/imports/7/tasks/0/layer"
},
"transformChain": {
"type": "vector",
"transforms": []
}
}
}
3. Now I want update this task to send data in append into an existing
geoserver layer and I execute a put on
http://192.168.1.193:8080/geoserver/rest/imports/7/task/0 with this json
{
"task": {
"updateMode": "APPEND",
"layer":{
"name":"site_boundary"
}
}
}
I have a 500 server error with this exception
02 feb 09:27:52 ERROR [geoserver.rest] -
java.lang.NullPointerException
at
org.geoserver.importer.rest.ImportResource.createImport(ImportResource.java:155)
at
org.geoserver.importer.rest.ImportResource.handlePut(ImportResource.java:253)
at org.restlet.Finder.handle(Finder.java:298)
at
org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)
at org.restlet.Filter.doHandle(Filter.java:105)
at org.restlet.Filter.handle(Filter.java:134)
at org.restlet.Router.handle(Router.java:444)
at
org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)
at
com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
at
org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)
at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:147)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
at
org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:881)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:651)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at .........
and from geoserver admin interface I see that it was created a new import
with a new id.
I see also a mismatch on documentation for updating a task:
at
http://docs.geoserver.org/2.10.1/user/extensions/importer/rest_reference.html#updating-a-task
says to execute a PUT to geoserver/rest/imports/<import_id>/task/<task_id>
while at
http://docs.geoserver.org/stable/en/user/extensions/importer/rest_examples.html#uploading-a-shapefile-to-postgis
says to execute a PUT to
geoserver/rest/imports/<import_id>/tasks/<task_id>/target
With this url I have this exception:
java.lang.ClassCastException: Cannot cast org.geoserver.importer.ImportTask
to org.geoserver.catalog.StoreInfo
at java.lang.Class.cast(Class.java:3369)
at
org.geoserver.config.util.XStreamPersister.load(XStreamPersister.java:606)
at
org.geoserver.importer.rest.ImportJSONReader.fromJSON(ImportJSONReader.java:475)
at
org.geoserver.importer.rest.ImportJSONReader.fromJSON(ImportJSONReader.java:479)
at
org.geoserver.importer.rest.TaskTargetResource$TaskTargetJSONFormat.read(TaskTargetResource.java:156)
at
org.geoserver.rest.format.StreamDataFormat.toObject(StreamDataFormat.java:34)
at
org.geoserver.importer.rest.TaskTargetResource.handlePut(TaskTargetResource.java:70)
at org.restlet.Finder.handle(Finder.java:298)
at
org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)
at org.restlet.Filter.doHandle(Filter.java:105)
at org.restlet.Filter.handle(Filter.java:134)
at org.restlet.Router.handle(Router.java:444)
at
org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)
at
com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
at
org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)
....
Thanks.
Giuseppe
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users