在 Tomcat 9 上运行的 GeoServer 2.17.1 WAR 未找到 GEOSERVER_DATA_DIR 上下文参数

Posted

技术标签:

【中文标题】在 Tomcat 9 上运行的 GeoServer 2.17.1 WAR 未找到 GEOSERVER_DATA_DIR 上下文参数【英文标题】:GeoServer 2.17.1 WAR running on Tomcat 9 not finding GEOSERVER_DATA_DIR context param 【发布时间】:2020-06-29 21:44:50 【问题描述】:

我在 Tomcat 9 中将 GeoServer 2.17.1 作为 WAR servlet 安装。如果数据文件位于

C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\geoserver\data

一切正常。但是,如果数据文件位于

C:\Users\geoserveruser\Documents\GeoServerData

并将以下上下文参数添加到

C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\geoserver\WEB-INF\web.xml

<context-param>
   <param-name>GEOSERVER_DATA_DIR</param-name>
   <param-value>C:\Users\geoserveruser\Documents\GeoServerData</param-value>
</context-param> 

找不到数据目录。实际上在

中创建了一个新目录

C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\geoserver\data

当 Tomcat 重新启动时。 GeoServer 文档

https://docs.geoserver.org/stable/en/user/datadirectory/setting.html#web-archive

表示这是配置 GeoServer 数据目录的正确方法,上下文参数在 web.xml 中提供,只需取消注释和编辑即可。

为什么这不符合文档中的说明?

更新: 在 Tomcat 日志文件中找到这些

29 Jun 16:35:17 WARN [geoserver.platform] - Found Servlet context parameter GEOSERVER_DATA_DIR set to C:\Users\geoserveruser\Documents\GeoServerData , but this path does not exist

29 Jun 16:35:17 INFO [geoserver.platform] - Falling back to embedded data directory: C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\geoserver\data

这解释了为什么要创建一个新的数据目录。

C:\Users\geoserveruser\Documents\GeoServerData

确实存在,并且我验证了当前(和所有用户)对该目录具有读写权限。

想法?

【问题讨论】:

请不要在这里和GIS.se 交叉发布同样的问题 - 在这种情况下 gis.se 是一个更好的地方 【参考方案1】:

这是因为\ 在Java 世界中用作路径分隔符并不是一个很好的字符,因为它们被用作转义字符。因此,如果您必须使用\,则有必要使用其中两个来逃避它们的逃避,这样您的路径就会变成C:\\Users\\geoserveruser\\Documents\\GeoServerData,但更好、更容易的是与计算世界的其他部分保持一致并使用@987654324 @ 作为路径分隔符,给出C:/Users/geoserveruser/Documents/GeoServerData

老实说,如果您要安装 Tomcat 的麻烦,这可能会成为生产机器,在这种情况下,您可能应该重新考虑整个 windows 的想法并使用不需要使用 50 的适当操作系统%+ 对每个请求进行 CPU 病毒扫描。

【讨论】:

以上是关于在 Tomcat 9 上运行的 GeoServer 2.17.1 WAR 未找到 GEOSERVER_DATA_DIR 上下文参数的主要内容,如果未能解决你的问题,请参考以下文章

我需要在我的服务器上的同一个 Tomcat 7 中运行 Pentaho CE BI-Server 和 Geoserver

javax.imageio.IIOException:无法在 Tomcat 9、OpenJDK 11 和 Geoserver 中创建 ImageInputStream

在 tomcat 8 上部署地理服务器

Geoserver 是不是不允许跨域数据访问(getFeatureInfo)?

如何使用 Apache 和 Tomcat 为 Geoserver WMS 设置子域

geoserver环境搭建与地图发布