【问题标题】:How to change the system variable in Geoserver如何在 Geoserver 中更改系统变量
【发布时间】:2020-02-04 11:41:04
【问题描述】:

我在 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:错误:无法写入元组存储临时文件:设备上没有剩余空间:SQL 函数“st_force_2d”语句 2

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

【问题讨论】:

  • 你的磁盘已满,与shapefile无关

标签: environment-variables size shapefile geoserver


【解决方案1】:

在你提到的链接中它说:

可以通过将 GS_SHP_MAX_SIZE 和 GS_DBF_MAX_SIZE 系统变量设置为不同的值来修改这些限制。

所以我认为它类似于GEOSERVER_DATA_DIR config。

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

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

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

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

  1. 上下文参数:在WEB-INF 文件夹中查找和编辑web.xml。然后在根元素处添加这个上下文参数(<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 系统属性:它与二进制安装非常相似,只是您应该为网络服务器添加系统变量。如果您使用的是 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 应用出现问题。

【讨论】:

  • 感谢您的回复。当我在控制台中执行 printenv 时,没有 GS_SHP_MAX_SIZE 变量。我安装了带有网络存档的 Geoserver....
  • @DamTan Web 存档解决方案已添加到答案中。希望有帮助
猜你喜欢
  • 1970-01-01
  • 2019-03-07
  • 2011-05-19
  • 2013-08-05
  • 1970-01-01
  • 2011-05-04
  • 2015-09-04
  • 2014-06-07
  • 2017-07-16
相关资源
最近更新 更多