如何在Geoserver中更改系统变量

时间:2019-10-07 07:24:22

标签: environment-variables size shapefile geoserver

我在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上进行了检查,但找不到解决方法。

1 个答案:

答案 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的配置。有两种方法可以做到:

  1. 上下文参数:在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>
  1. Java系统属性:它与二进制文件安装非常相似,只不过您应该为Web服务器添加系统变量。如果您使用的是tomcat,请将其添加到系统变量中。
$ 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应用程序中引起问题。