Ubuntu下用geoserver-restconfig创建Coverage Store报错500,求解决
问题:使用geoserver-restconfig创建Coverage Store失败
环境信息
- 操作系统:Ubuntu 22.04.2 LTS
- Python版本:3.10.6
- 使用工具包:geoserver-restconfig
代码示例
from geoserver.catalog import Catalog cat = Catalog(service_url='http://localhost:8080/geoserver/rest', username='FAKE_USERNAME', password='FAKE_PASSWORD') # 创建工作区 cat.create_workspace(name='demo', uri='http://demo') # 创建Coverage Store path = 'indicators/coolingdd/rcp_2_6/ensemble/coolingdd_rcp26_multi-model-mean_-_-_20210101-20301230.tiff' cat.create_coveragestore(name='NAME', workspace='demo', path=path, type='GeoTIFF', create_layer=True, layer_name='TITLE', upload_data=False)
说明:indicators目录与Python脚本在同一运行目录下
报错信息
Traceback (most recent call last): File "/home/iliamous/PycharmProjects/winbank-esg-risk-gis-platform/scratch_work.py", line 767, in <module> cat.create_coveragestore(name='NAME', File "/home/iliamous/.local/lib/python3.10/site-packages/geoserver/catalog.py", line 617, in create_coveragestore raise FailedRequestError('Failed to create coverage/layer {} for : {}, {}'.format(layer_name, name, geoserver.catalog.FailedRequestError: Failed to create coverage/layer TITLE for : NAME, 500
排查过程
更新1
已将GeoServer全局设置中的日志级别改为developer,但仍出现相同错误。
更新2
查看GeoServer日志文件,发现核心错误:
06 Mar 11:25:48 WARN [gce.geotiff] - File /var/lib/tomcat9/webapps/geoserver/data/indicators/coolingdd/rcp_2_6/ensemble/coolingdd_rcp26_multi-model-mean_-_-_20210101-20301230.tiff does not exist. org.geotools.data.DataSourceException: File /var/lib/tomcat9/webapps/geoserver/data/indicators/coolingdd/rcp_2_6/ensemble/coolingdd_rcp26_multi-model-mean_-_-_20210101-20301230.tiff does not exist.
结论
原本误以为create_coveragestore函数会自动将本地TIFF文件上传至GeoServer,但从日志可以看出,该函数会直接到GeoServer的数据目录(/var/lib/tomcat9/webapps/geoserver/data/)查找指定路径的文件。因此正确流程是:先将TIFF文件上传到GeoServer数据目录的对应路径下,再调用create_coveragestore并填写数据目录下的相对路径。
内容的提问来源于stack exchange,提问作者CoolMathematician
相关产品推荐
相关产品推荐

