Hi to all, I think the exception is due to geoserver version:
24 mag 07:21:53 ERROR [geoserver.rest] - com.thoughtworks.xstream.mapper.CannotResolveClassException: updateMode at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79) at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30) I tried the procedure on geoserver 2.20.2 and it's ok This is the sequence of operations: 1. POST geoserver/rest/imports to create import; post the json { "import": { "targetStore": { "dataStore": { "name": "store" } }, "targetWorkspace": { "workspace": { "name": "ws" } } } } return importID 2. POST geoserver/rest/imports/<importID>/tasks to create task; post form-data with shapefile zipped return taksID 3. PUT geoserver/rest/imports/<importID>/tasks/<taskID> to set append mode; post the json { "updateMode": "APPEND", "layer": { "name": "layerA", "nativeName": "layerA" } } return 204 no content 4. PUT geoserver/rest/imports/<importID>/tasks/<taskID>/target to reset datastore; post the json { "dataStore": { "name":"store" } } return 204 no content 5. POST geoserver/rest/imports/<importID> with no body to execute import return 204 no content the import is executed and data are in layerA layer! Giuseppe Il giorno lun 23 mag 2022 alle ore 14:26 Giuseppe Falcone < falcone.giuse...@gmail.com> ha scritto: > Thanks > > I try the PUT with this body > > { > "updateMode": "APPEND", > "layer": { > "name": "layerA", > "nativeName": "layerA" > } > } > > I receive a 500 error with the message 'updateMode' > I'm using geoserver 2.10.1 > > for layer REST representation do you mean the response of these? > http://10.23.8.193:8080/geoserver/rest/layers/layerA.html > > Thanks > > Giuseppe > > Il giorno lun 23 mag 2022 alle ore 11:20 Andrea Aime < > andrea.a...@geosolutionsgroup.com> ha scritto: > >> Hi Giuseppe, >> close, but your JSON is one level off, you're updating the task, so it's >> the top level object in the request. >> So it would be something like this: >> >> { >> "updateMode": "APPEND", >> "layer": { >> "name": "layerA" >> } >> } >> >> Checking a REST script I have handy, inside the layer I also have >> "nativeName" : "theNativeName" (check the value for nativeName from the >> layer REST representation). >> >> Cheers >> Andrea >> >> >> On Mon, May 23, 2022 at 11:05 AM Giuseppe Falcone < >> falcone.giuse...@gmail.com> wrote: >> >>> Thanks a lot Andrea for the response, but I'm not able to do that >>> 1. POST http://10.23.8.193:8080/geoserver/rest/import to create task >>> import >>> 2. POST http://10.23.8.193:8080/geoserver/rest/import/<importID>/task to >>> upload shapefile zip (multipart form-data) >>> >>> 3. What is the body of PUT request >>> /geoserver/rest/imports/<importID>/tasks/<taskID> >>> to change target layer name? >>> I try: >>> { >>> "task":{ >>> "id": 0, >>> "href": "http://10.23.8.193:8080/geoserver/rest/imports/24/tasks/0", >>> "updateMode": "APPEND", >>> "layer": { >>> "name": "layerA" >>> } >>> } >>> } >>> >>> (layerA is a layer on geoserver, on same workspace and same datastore >>> having same fields of uploaded shapefile) >>> But I receive error "Cannot cast org.geoserver.importer.ImportTask to >>> org.geoserver.catalog.StoreInfo" >>> >>> Thanks a lot >>> >>> Giuseppe >>> >>> >>> >>> >>> Il giorno dom 22 mag 2022 alle ore 17:17 Andrea Aime < >>> andrea.a...@geosolutionsgroup.com> ha scritto: >>> >>>> On Thu, May 19, 2022 at 9:47 AM Giuseppe Falcone < >>>> falcone.giuse...@gmail.com> wrote: >>>> >>>>> Thanks for you response. >>>>> I rephrase the question: >>>>> I have a web application where a user uploads a shapefile and this >>>>> needs to be inserted into a postgis table that has the same fields (in >>>>> append mode). Shapefile and table don't necessarily have the same name. >>>>> There is a manner to execute this task via rest api or importer api? >>>>> >>>> >>>> Use the REST API: >>>> >>>> - Set up the context and the shapefile to import >>>> - Use PUT requests against the context to update the import mode >>>> (APPEND) and change the target layer name (to the one you want to >>>> append to) >>>> - Run the import. >>>> >>>> >>>> Cheers >>>> Andrea >>>> >>>> >>>> == >>>> GeoServer Professional Services from the experts! >>>> >>>> Visit http://bit.ly/gs-services-us for more information. >>>> == >>>> >>>> Ing. Andrea Aime >>>> @geowolf >>>> Technical Lead >>>> >>>> GeoSolutions Group >>>> phone: +39 0584 962313 >>>> >>>> fax: +39 0584 1660272 >>>> >>>> mob: +39 333 8128928 >>>> >>>> https://www.geosolutionsgroup.com/ >>>> >>>> http://twitter.com/geosolutions_it >>>> >>>> ------------------------------------------------------- >>>> >>>> Con riferimento alla normativa sul trattamento dei dati personali (Reg. >>>> UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si >>>> precisa che ogni circostanza inerente alla presente email (il suo >>>> contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è >>>> riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il >>>> messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra >>>> operazione è illecita. Le sarei comunque grato se potesse darmene notizia. >>>> >>>> This email is intended only for the person or entity to which it is >>>> addressed and may contain information that is privileged, confidential or >>>> otherwise protected from disclosure. We remind that - as provided by >>>> European Regulation 2016/679 “GDPR” - copying, dissemination or use of this >>>> e-mail or the information herein by anyone other than the intended >>>> recipient is prohibited. If you have received this email by mistake, please >>>> notify us immediately by telephone or e-mail >>>> >>> >> >> -- >> >> Regards, >> >> Andrea Aime >> >> == >> GeoServer Professional Services from the experts! >> >> Visit http://bit.ly/gs-services-us for more information. >> == >> >> Ing. Andrea Aime >> @geowolf >> Technical Lead >> >> GeoSolutions Group >> phone: +39 0584 962313 >> >> fax: +39 0584 1660272 >> >> mob: +39 333 8128928 >> >> https://www.geosolutionsgroup.com/ >> >> http://twitter.com/geosolutions_it >> >> ------------------------------------------------------- >> >> Con riferimento alla normativa sul trattamento dei dati personali (Reg. >> UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si >> precisa che ogni circostanza inerente alla presente email (il suo >> contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è >> riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il >> messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra >> operazione è illecita. Le sarei comunque grato se potesse darmene notizia. >> >> This email is intended only for the person or entity to which it is >> addressed and may contain information that is privileged, confidential or >> otherwise protected from disclosure. We remind that - as provided by >> European Regulation 2016/679 “GDPR” - copying, dissemination or use of this >> e-mail or the information herein by anyone other than the intended >> recipient is prohibited. If you have received this email by mistake, please >> notify us immediately by telephone or e-mail >> >
_______________________________________________ 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