Решено: GeoServer: Редактирование featuretype через REST API
Добавлено: 20 дек 2017, 13:03
Всем доброго дня!
Используя REST API геосервера по url http://localhost/geoserver/rest
я получаю featuretype для слоя, который определяется sql запросом с параметром default value “p1”:
/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml
Изменив параметр, я обновляю xml и загружаю ее методом put c параметром recalculate (или nativebbox,latlonbbox,all ) на url: /resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml?recalculate=nativebbox,latlonbbox
сервер возвращает 200.
в логе:
DEBUG [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path: /rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml, QueryString: recalculate=nativebbox,latlonbbox,all with /rest/**
DEBUG [geoserver.security] - AuthenticationCache found an entry for basic, admin:ee74fa3de459095436626c9ee67f6506
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Converted URL to lowercase, from: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; to: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml' and httpMethod= PUT
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~ antPath= /** methodList= [GET]
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; antPath is /**; matchedPath=true; matchedMethods=false
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~ antPath= /** methodList= [POST, DELETE, PUT]
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; antPath is /**; matchedPath=true; matchedMethods=true
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - returning ADMIN
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
DEBUG [filter.GeoServerSecurityContextPersistenceFilter$1] - SecurityContextHolder now cleared, as request processing completed
В повторном запросе get через rest параметр обновляется, однако в web интерфейсе в определении слоя и его sql он остается старым. Карты соответственно тоже не изменяется.
Подскажите пожалуйста, чего не хватает для успешного обновления слоя?
С уважением,
Сергей
Используя REST API геосервера по url http://localhost/geoserver/rest
я получаю featuretype для слоя, который определяется sql запросом с параметром default value “p1”:
/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml
Изменив параметр, я обновляю xml и загружаю ее методом put c параметром recalculate (или nativebbox,latlonbbox,all ) на url: /resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml?recalculate=nativebbox,latlonbbox
сервер возвращает 200.
в логе:
DEBUG [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path: /rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml, QueryString: recalculate=nativebbox,latlonbbox,all with /rest/**
DEBUG [geoserver.security] - AuthenticationCache found an entry for basic, admin:ee74fa3de459095436626c9ee67f6506
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Converted URL to lowercase, from: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; to: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml' and httpMethod= PUT
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~ antPath= /** methodList= [GET]
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; antPath is /**; matchedPath=true; matchedMethods=false
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~ antPath= /** methodList= [POST, DELETE, PUT]
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is: '/rest/resource/workspaces/m/water_db/whater_vhu/featuretype.xml'; antPath is /**; matchedPath=true; matchedMethods=true
DEBUG [security.RESTfulPathBasedFilterInvocationDefinitionMap] - returning ADMIN
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
TRACE [ows.OWSHandlerMapping] - No handler mapping found for [/rest/resource/workspaces/m/Water_db/Whater_VHU/featuretype.xml]
DEBUG [filter.GeoServerSecurityContextPersistenceFilter$1] - SecurityContextHolder now cleared, as request processing completed
В повторном запросе get через rest параметр обновляется, однако в web интерфейсе в определении слоя и его sql он остается старым. Карты соответственно тоже не изменяется.
Подскажите пожалуйста, чего не хватает для успешного обновления слоя?
С уважением,
Сергей