利用geoserver-manager发布shp

可能是以后工作业务上的需求,需要使用Geoserver对局域网内的shp文件进行发布测试。使用rest方式完成这一系列的操作。

使用语言:Java
  使用类库:geoserver-manager

在pom.xml中加入:

        <dependency>
            <groupId>it.geosolutions</groupId>
            <artifactId>geoserver-manager</artifactId>
            <version>1.7-SNAPSHOT</version>
        </dependency>
		<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
             <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

官网并没有指出使用slf4j-log4j12,可能是我使用框架版本的问题吧,总是提示java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder异常,所以这个jar文件必须要加上。
  测试代码很简单:

	    String RESTURL  = "http://localhost:8080/geoserver";
        String RESTUSER = "admin";
        String RESTPW   = "geoserver";

        List<String> workspaces=null;
        String result="";
        try {
            File zipFile=new File("\\\\192.168.9.46\\Shp\\rount.zip");

            GeoServerRESTReader reader = new GeoServerRESTReader(RESTURL, RESTUSER, RESTPW);
            GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);

            workspaces=reader.getWorkspaceNames();

            if(workspaces.contains("dahong")){

                if(publisher.publishShp("dahong", "dxmr", "rount", zipFile, "EPSG:4326")){

                    result="He did it!";
                }else{
                    result="fail!";
                }
            }
        }catch (Exception mue){
            mue.printStackTrace();
        }

这样局域网内的shp文件就可以访问并发布了。
  测试完成!

补充(2019年12月4日)

评论区有人遇到下面这种错误:

- Error creating coverage dahong:dxmr:chengshi (null)

此时geoserver中datastore已经创建完成了。
tiger-hcx排查是因为shp、压缩包以及publishShp的参数layerName名称不一致。

补充(2019年12月24日)

上述错误还有一个可能是publishShp参数错误,比如(EPSG:4326拼写错误),所以一定要好好检查。
谢谢MagicMHD提醒。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值