GeoServer WMS地图请求内存限制问题

  • org.geoserver.platform.ServiceException: Rendering request would use 112517KB, whilst the maximum memory allowed is 65536KB
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:344)
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:286)
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:141)
        at org.geoserver.wms.GetMap.executeInternal(GetMap.java:653)
        at org.geoserver.wms.GetMap.run(GetMap.java:285)
        at org.geoserver.wms.GetMap.run(GetMap.java:131)
        at org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:320)
        at sun.reflect.GeneratedMethodAccessor374.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoi

  •  

  • 应用需求:GeoServer发布WMS地图服务后,需要请求获取一张较大的地图图片,请求地址如下:

    http://localhost:8080/geoserver/wms?service=WMS&;version=1.1.0&;request=GetMap&;layers=campus&;styles=&;bbox=4.528514,4.950175,4.546676,4.958241&;width=7430&;height=3300&;srs=EPSG:4326&;format=image/png

    其中,输出的地图图片的高、宽分别为:3300、7430。

    问题一:在浏览器中地址栏中回车发送请求后,抛出以下异常,提示地图渲染超过了65536KB的大小限制:

    <pre name="code" class="html"><?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" > <ServiceException>Rendering request would use 71833KB, whilst the maximum memory allowed is 65536KB</ServiceException></ServiceExceptionReport>

    解决一:登录 GeoServer Web Admin Page 管理页面,在左侧的服务中,点击WMS,在右侧把Max rendering memory (KB)

    的值由65536改为了6553600以确保够用。重新请求即可成功。

     

    问题二:

    当继续增加请求的图片大小时(高、宽:14860、6600),仍然会抛出异常,请求URL和异常信息如下:

    http://localhost:8080/geoserver/wms?service=WMS&;version=1.1.0&;request=GetMap&;layers=campus&;styles=&;bbox=4.528514,4.950175,4.546676,4.958241&;width=14860&;height=6600&;srs=EPSG:4326&;format=image/png<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" > <ServiceException>java.lang.NegativeArraySizeExceptionnull</ServiceException></ServiceExceptionReport><?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" > <ServiceException>java.lang.OutOfMemoryError: Java heap spaceJava heap space</ServiceException></ServiceExceptionReport> 解决二:开始菜单 >> Start GeoServer 右键属性,找到 "C:/Program Files (x86)/GeoServer 2.5/bin/ startup.bat

    " ,用记事本打开:

    call "C:/Program Files (x86)/Java/jdk1.8.0/bin/java.exe" -DGEOSERVER_DATA_DIR="C:/Program Files (x86)/GeoServer 2.5/data_dir" -Xmx512m -XX:MaxPermSize=128m -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -Djetty.port=8080 -Djetty.logs="C:/Program Files (x86)/GeoServer 2.5/logs" -jar "C:/Program Files (x86)/GeoServer 2.5/start.jar"

    修改其中的  -Xmx512m -XX:MaxPermSize=128m部分,修改如下:

    call "C:/Program Files (x86)/Java/jdk1.8.0/bin/java.exe" -DGEOSERVER_DATA_DIR="C:/Program Files (x86)/GeoServer 2.5/data_dir" -Xmx1024m -XX:MaxPermSize=512m -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -Djetty.port=8080 -Djetty.logs="C:/Program Files (x86)/GeoServer 2.5/logs" -jar "C:/Program Files (x86)/GeoServer 2.5/start.jar"

    再次请求地图URL,问题解决。

  • 以上是GeoServer WMS地图请求内存限制问题的内容,更多 localhost 地图服务 Service 图片 的内容,请您使用右上方搜索功能获取相关信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值