geoserver-manager(java操作geoserver发布服务)
geoserver rest接口文档:https://osgeo.cn/geoserver-user-manual/rest/index.html
geoserver-manager文档:https://github.com/geosolutions-it/geoserver-manager/wiki
获取连接
private GeoServerRESTManager connect(){try {return new GeoServerRESTManager(new URL("http://localhost:8080/geoserver"),"admin","geoserver");} catch (MalformedURLException e) {return null;}
}
工作空间
创建工作空间
public AjaxResult createWorkSpace(){GeoServerRESTManager manager = connect();GeoServerRESTPublisher publisher = manager.getPublisher();GeoServerRESTReader reader = manager.getReader();String workSpaceName = "test";try {if(!reader.existsWorkspace(workSpaceName)){
// publisher.createWorkspace(workSpaceName);boolean success = publisher.createWorkspace(workSpaceName,new URI("http://test"));if(success){return AjaxResult.success("工作空间创建成功!");}else{return AjaxResult.success("工作空间创建失败!");}}else{return AjaxResult.error("工作空间已经存在!");}} catch (URISyntaxException e) {throw new RuntimeException(e);}
}
更新工作空间
public AjaxResult updateWorkSpace(){GeoServerRESTManager manager = connect();GeoServerRESTPublisher publisher = manager.getPublisher();GeoServerRESTReader reader = manager.getReader();String workSpaceName = "test";try {if(!reader.existsWorkspace(workSpaceName)){return AjaxResult.error("工作空间不存在!");}else{boolean success = publisher.updateNamespace(workSpaceName,new URI("http://test123"));if(success){return AjaxResult.success("更新工作空间成功!");}else{return AjaxResult.error("更新工作空间失败!");}}} catch (URISyntaxException e) {throw new RuntimeException(e);}
}
删除工作空间
public AjaxResult removeWorkSpace(){GeoServerRESTManager manager = connect();GeoServerRESTPublisher publisher = manager.getPublisher();GeoServerRESTReader reader = manager.getReader();String workSpaceName = "test";if(!reader.existsWorkspace(workSpaceName)){return AjaxResult.success("删除成功!");}else{boolean success = publisher.removeWorkspace(workSpaceName);if(success){return AjaxResult.success("删除成功!");}else{return AjaxResult.error("删除失败!");}}
}
存储仓库
shp文件夹(Directory of spatial files (shapefiles) )
创建存储仓库
public AjaxResult createDataSource(){GeoServerRESTManager manager = connect();GeoServerRESTStoreManager storeManager = manager.getStoreManager();GeoServerRESTReader reader = manager.getReader();String workSpaceName = "test";String storeName = "testStore";try {if(!reader.existsDatastore(workSpaceName,storeName)){// shp文件目录GSDirectoryOfShapefilesDatastoreEncoder encoder = new GSDirectoryOfShapefilesDatastoreEncoder(storeName,new URL("file:E:/data"));encoder.setName(storeName);encoder.setCharset(Charset.forName("UTF-8"));encoder.setDescription("测试demo");encoder.setCreateSpatialIndex(true);encoder.setCacheAndReuseMemoryMaps(true);encoder.setMemoryMappedBuffer(true);boolean success = storeManager.create(workSpaceName,encoder);return success ? AjaxResult.success("数据仓库创建成功!") : AjaxResult.error("数据仓库创建失败!");}else{return AjaxResult.error("数据仓库已经存在!");}} catch (MalformedURLException e) {throw new RuntimeException(e);}
}
更新存储仓库
public AjaxResult updateDataSource(){GeoServerRESTManager manager = connect();GeoServerRESTStoreManager storeManager = manager.getStoreManager();GeoServerRESTReader reader = manager.getReader();String workSpaceName = "test";String storeName = "testStore";try {if(!reader.existsDatastore(workSpaceName,storeName)){return AjaxResult.error("数据仓库已经存在!");}else{// shp文件目录GSDirectoryOfShapefilesDatastoreEncoder encoder = new GSDirectoryOfShapefilesDatastoreEncoder(storeName,new URL("file:E:/data"));encoder.setName(storeName);encoder.setCharset(Charset.forName("UTF-8"));encoder.setDescription("测试demo123");encoder.setCreateSpatialIndex(true);boolean success = storeManager.update(workSpaceName,encoder);return success ? AjaxResult.success("数据仓库更新成功!") : AjaxResult.error("数据仓库已经存在!");}} catch (MalformedURLException e) {throw new RuntimeException(e);}
}
删除存储仓库
public AjaxResult deleteDataSource(){GeoServerRESTManager manager = connect();GeoServerRESTStoreManager storeManager = manager.getStoreManager();GeoServerRESTPublisher publisher = manager.getPublisher();GeoServerRESTReader reader =