java代码发布shp图层到geoserver服务中

pom依赖
        <dependency>
            <groupId>com.github.dov-vlaanderen</groupId>
            <artifactId>geoserver-manager</artifactId>
            <version>1.8.5</version>
        </dependency>
代码实现
public String publishGeoServerTif(String filePath) throws Exception {
        // 如果不存在工作区则创建
        URL u = new URL(geoserverUrl.getUrl());
        GeoServerRESTManager manager = new GeoServerRESTManager(u, geoserverUrl.getUserName(), geoserverUrl.getPassword());
        GeoServerRESTPublisher publisher = manager.getPublisher();
        GeoServerRESTReader reader = manager.getReader();
        List<String> workspaces = manager.getReader().getWorkspaceNames();
        if (!workspaces.contains(geoserverUrl.getWorkSpace())) {
            publisher.createWorkspace(geoserverUrl.getWorkSpace());
        }

        File file = new File(filePath);
        String fileName = file.getName().replace(".shp", "");
        String zipFile = filePath.replace(".shp", ".zip");

        //判断数据存储(datastore)是否已经存在,不存在则创建
        RESTDataStore restStore = manager.getReader().getDatastore(geoserverUrl.getWorkSpace(), fileName);
        if (restStore == null) {
            //创建shape文件存储
            URL url = new URL("file://" + filePath);
            GSShapefileDatastoreEncoder store = new GSShapefileDatastoreEncoder(fileName, url);
            manager.getStoreManager().create(geoserverUrl.getWorkSpace(), store);
        }

        //发布图层
        //判断图层是否已经存在,不存在则创建并发布
        RESTLayer layer = reader.getLayer(geoserverUrl.getWorkSpace(), fileName);
        if (layer == null) {
            manager.getPublisher().publishShp(geoserverUrl.getWorkSpace(), geoserverUrl.getWorkSpace(),
                                                          fileName, new File(zipFile), GeoServerRESTPublisher.DEFAULT_CRS, geoserverUrl.getStyle());
            layer = reader.getLayer(geoserverUrl.getWorkSpace(), fileName);
        }
        RESTWms wms = manager.getReader().getWms(layer);
        RESTBoundingBox nativeBoundingBox = wms.getNativeBoundingBox();
        fileName=fileName+";"+wms.getSRS()+";"+nativeBoundingBox.getMinX()+","+nativeBoundingBox.getMinY()+","+nativeBoundingBox.getMaxX()+","+nativeBoundingBox.getMaxY();
        return fileName;
    }