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 <
[email protected]> 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 <
> [email protected]> 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 <
>> [email protected]> 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 <
>>> [email protected]> ha scritto:
>>>
>>>> On Thu, May 19, 2022 at 9:47 AM Giuseppe Falcone <
>>>> [email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users