Geoserver:删除自定义 DataAccess 类上的 featureType 时从未调用过removeSchema

问题描述 投票:0回答:1

我开发了自己的 GeoServer DataAccess,以便能够为我的架构使用特定的数据源。部署插件后,它会很好地集成到 GeoServer 中,并且通过 API,我可以使用此数据存储创建图层并获取 WMS 流。好吧,我对此很满意。

我遇到的问题是在使用此 DataAccess 删除(通过 API)featureType 时出现的。

删除图层时GeoServer没有调用DataAccess.java接口的removeSchema方法,不知道为什么。我在数据访问中使用了缓存,通过此方法删除图层时不会清除缓存。

这是我的数据访问的实现:

@Override public void removeSchema(Name typeName) throws IOException { this.schemaCache.remove(typeName); }

地理服务器永远不会调用此方法。我希望 DELETE 功能类型必须调用它。

目前,我唯一的解决方案是修改featureType控制器(FeatureTypeController.java)的DELETE端点以添加对此“removeSchema”的调用:

try { DataAccess<? extends FeatureType, ? extends Feature> store = dsInfo.getDataStore(null); store.removeSchema(ftInfo.getQualifiedName()); } catch (IOException e) { throw new RestException("Could not load datastore: " + storeName, HttpStatus.NOT_FOUND); }

我试图找出在删除图层时是否有更简单的方法来调用此“removeSchema”。

java geometry geoserver wms
1个回答
0
投票

我不记得自己曾经称呼过它,但是从快速检查

ShapefileDataStore
代码来看,它看起来像是从磁盘上物理删除(删除)实际文件,所以这可能是 GeoServer 当数据存储时应该做的事情已从服务器中删除。

© www.soinside.com 2019 - 2024. All rights reserved.