我在Linux上,我在使用postgresql-geoserver-openlayers。 我想用GeoServer显示shapefile。我将其存储在Postgresql中,并在Geoserver上导入表。 shapefile的大小为2.2GB。 当我想用Openlayers查看器(在Geoserver上)显示shapefile时,我有一个白色的屏幕,并且此错误是日志:
错误[geoserver.ows] org.geoserver.platform.ServiceException:呈现过程失败...。 原因:java.lang.RuntimeException:org.postgresql.util.PSQLException:错误:无法写入tuplestore临时文件:设备上没有剩余空间其中:SQL函数“ st_force_2d”语句2
我在这里看到:https://docs.geoserver.org/stable/en/user/services/wfs/outputformats.html,即shapefile的限制大小为2GB,但是我们可以通过更改系统变量GS_SHP_MAX_SIZE来修改此限制。 我怎样才能做到这一点 ?我在Internet上进行了检查,但找不到解决方法。
答案 0 :(得分:1)
在您提到的链接中它说:
可以通过将GS_SHP_MAX_SIZE和GS_DBF_MAX_SIZE系统变量设置为其他值来修改这些限制。
所以我认为它类似于GEOSERVER_DATA_DIR
的配置。
用于二进制安装:您应该更改OS系统变量。我不确定,但是命令是这样的:
$ export GS_SHP_MAX_SIZE=Limit of .shp size in bytes
$ export GS_SHP_MAX_SIZE=3000000000
如果它不起作用,请在Linux发行版中搜索更改系统变量。
用于Web存档安装:您应更改Web服务器或GeoServer的配置。有两种方法可以做到:
web.xml
文件夹中查找和编辑WEB-INF
。然后在根元素(<web-app>
标签)处添加此上下文参数<context-param>
<param-name>GS_SHP_MAX_SIZE</param-name>
<param-value>Limit of .shp size in bytes</param-value>
</context-param>
$ export CATALINA_OPTS="-GS_SHP_MAX_SIZE=Limit of .shp size in bytes"
$ export CATALINA_OPTS="-GS_SHP_MAX_SIZE=3000000000"
小心更改Java系统属性!它将影响整个Apache tomcat,并可能在安装的其他Web应用程序中引起问题。