如何更改 Geoserver 中的系统变量

How to change the system variable in Geoserver

我正在 Linux.I 使用 postgresql - geoserver - openlayers。 我想用 GeoServer 显示一个 shapefile。我将它存储在 Postgresql 中并在 Geoserver 上导入 table。 shapefile 的大小为 2.2GB。 当我想用 Openlayers 查看器(在 Geoserver 上)显示我的 shapefile 时,我有一个白屏,这个错误是日志:

错误 [geoserver.ows] org.geoserver.platform.ServiceException:渲染过程失败.... 原因:java.lang.RuntimeException:org.postgresql.util.PSQLException:错误:无法写入 tuplestore 临时文件:设备上没有留下 space,其中:SQL 函数 "st_force_2d" 语句 2

我在这里看到:https://docs.geoserver.org/stable/en/user/services/wfs/outputformats.html,shapefile 的大小限制为 2GB,但我们可以通过更改系统变量 GS_SHP_MAX_SIZE 来修改此限制。 我怎样才能做到这一点 ?我在网上查过,但找不到解决办法。

在你提到的 link 中说:

it’s possible to modify those limits by setting the GS_SHP_MAX_SIZE and GS_DBF_MAX_SIZE system variables to a different value.

所以我认为它类似于 GEOSERVER_DATA_DIR 配置。

对于二进制文件安装:您应该更改OS 系统变量。我不确定,但是命令是这样的:

$ export GS_SHP_MAX_SIZE=Limit of .shp size in bytes
$ export GS_SHP_MAX_SIZE=3000000000

如果它不起作用,请在您的 Linux 分区中搜索更改系统变量。

对于网络存档安装:您应该更改网络服务器或地理服务器配置。有两种方法:

  1. 上下文参数:在 WEB-INF 文件夹中查找并编辑 web.xml。然后在根元素(<web-app> 标记)
  2. 处添加此上下文参数
<context-param>
    <param-name>GS_SHP_MAX_SIZE</param-name>
    <param-value>Limit of .shp size in bytes</param-value>
</context-param>
  1. Java system 属性: 除了你应该为网络服务器添加系统变量外,它与二进制文件安装非常相似。如果您使用 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 应用出现问题。