基本上,与其将 Geoserver 托管在
https://hostname/geoserver
,不如将其托管在 https://hostname/another-geoserver-context-root
?
我尝试将
/usr/local/tomcat/webapps/geoserver
重命名为 /usr/local/tomcat/webapps/another-geoserver-context-root
并且 WebUI 似乎可以工作,但 Rest API 不行。
我在这里使用这个 docker 镜像:https://hub.docker.com/r/kartoza/geoserver
docker-compose.yml 片段:https://github.com/bird-house/birdhouse-deploy-ouranos/blob/70d6f2e019b083dfb6a80ff62b5eb105ae302470/ouranos-config/docker-compose-extra.yml#L22-L53
下面的错误可能是由我们启用的插件之一引起的吗?参见上面的
docker-compose-extra.yml
片段。
当 context-root 是
/geoserver
日志服务器端没有错误:
10 Mar 05:07:07 INFO [rest.catalog] - DELETE workspace WorkspaceInfoImpl[pc2]
10 Mar 05:07:08 INFO [rest.catalog] - Added workspace pc2
10 Mar 05:07:08 INFO [rest.catalog] - POST workspace pc2
10 Mar 05:07:08 CONFIG [platform.resource] - Notifying ENTRY_MODIFY change on /opt/geoserver/data_dir/gwc-layers. Created: 0, removed: 253, modified: 0
10 Mar 05:07:08 INFO [rest.catalog] - Auto-configuring coverage store: scengen_heat_wave_frequency_class1_qc00
10 Mar 05:07:12 INFO [rest.catalog] - PUT coverage scengen_heat_wave_frequency_class1_qc00,CoverageInfoImpl[scengen_heat_wave_frequency_class1_qc00]
10 Mar 05:07:12 INFO [rest.catalog] - POST Style scengen_heat_wave_frequency_class1_qc00
10 Mar 05:07:12 INFO [gwc.layer] - Truncating default style for layer pc2:scengen_heat_wave_frequency_class1_qc00, as it changed from raster to pc2:scen
gen_heat_wave_frequency_class1_qc00
10 Mar 05:07:12 INFO [geoserver.gwc] - Saving GeoSeverTileLayer pc2:scengen_heat_wave_frequency_class1_qc00
10 Mar 05:07:12 INFO [rest.catalog] - PUT layer pc2:scengen_heat_wave_frequency_class1_qc00
客户端对应的日志:
We will use the 'external' method, mapping /data to /opt/geoserver/data_dir.
Workspace 'pc2' deleted
Workspace 'pc2' created
/data/netcdf/spatial/scengen_heat_wave_frequency_class1_qc00.nc /opt/geoserver/data_dir/netcdf/spatial/scengen_heat_wave_frequency_class1_qc00.nc
Created: scengen_heat_wave_frequency_class1_qc00
当上下文根为
/another-geoserver-context-root
时,我在服务器端收到此错误:
10 Mar 05:15:08 INFO [rest.catalog] - DELETE workspace WorkspaceInfoImpl[pc2]
10 Mar 05:15:08 CONFIG [platform.resource] - Notifying ENTRY_MODIFY change on /opt/geoserver/data_dir/gwc-layers. Created: 0, removed: 15, modified: 0
10 Mar 05:15:08 INFO [rest.catalog] - Added workspace pc2
10 Mar 05:15:08 INFO [rest.catalog] - POST workspace pc2
10 Mar 05:15:08 ERROR [geoserver.rest] - Unsupported format: netcdf, available formats are: [dted, envihdr, rpftoc, imagemosaic, geotiff, imagepyramid, s
rp, arcgrid, rst, erdasimg, vrt, worldimage, nitf, aig, ehdr, geopackage (mosaic)]
org.geoserver.rest.RestException 400 BAD_REQUEST: Unsupported format: netcdf, available formats are: [dted, envihdr, rpftoc, imagemosaic, geotiff, imagepy
ramid, srp, arcgrid, rst, erdasimg, vrt, worldimage, nitf, aig, ehdr, geopackage (mosaic)]
at org.geoserver.rest.catalog.CoverageStoreFileController.getCoverageFormat(CoverageStoreFileController.java:307)
at org.geoserver.rest.catalog.CoverageStoreFileController.coverageStorePut(CoverageStoreFileController.java:143)
客户端相应错误:
We will use the 'external' method, mapping /data to /opt/geoserver/data_dir.
Workspace 'pc2' deleted
Workspace 'pc2' created
/data/netcdf/spatial/scengen_heat_wave_frequency_class1_qc00.nc /opt/geoserver/data_dir/netcdf/spatial/scengen_heat_wave_frequency_class1_qc00.nc
Traceback (most recent call last):
File "/scripts/provision_geoserver_data.py", line 189, in <module>
create_raster(path, remote_path)
File "/scripts/provision_geoserver_data.py", line 52, in create_raster
r.raise_for_status()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: for url: https://lvupavicsmaster.ouranos.ca/ogc-geoserver/rest/workspaces/pc2/coveragestores/scengen_heat_wave_frequency_class1_qc00/external.netcdf?coverageName=scengen_heat_wave_frequency_class1_qc00