最近有需要发布一些地图服务。
以前主要是以 ArcGIS Server 做为发布服务器。现在换了 GeoServer,对其中的一些问题做一些记录。
一、环境安装
因为 GeoServer 是免安装的。这里主要就是环境安装。
GeoServer 是依赖 Java jdk 的,所以需要先安装 Java jdk。
安装完成后需要设置环境变量(windows 下),Linux 下也需要设置 JAVA_HOME。
这时就可以直接运行 bin 目录下的 startup.bat(Windows)或者 startup.sh(Linux)。
在 Linux 下为了其在后台运行,我这里使用了 nohup 命令:
// 这里的路径需要是全路径 nohup /user/geoserver/bin/startup.sh &
这样 GeoServer 就会在后台运行
二、跨域
在使用代码调用 GeoServer 发布的服务时,会报错:CROS 的问题。
默认情况下 GeoServer 是禁用跨域功能了,这时我们需要自己去开启设置。
1、复制文件到指定位置
这里要复制的文件主要是:从 geoserver/lib 文件夹复制到 geoserver/webapps/geoserver/WEB-INF/lib 目录下
jetty-servlets-xxxx.jar
jetty-util-xxxx.jar
jetty-http-xxxx.jar (有说这个文件,但是我这里没有复制,可以正常跨域)
xxxx 是对应版本号,每个版本不一样
2、修改 web.xml
web.xml 是在 geoserver/webapps/geoserver/WEB-INF 目录下
主要是修改以下两个地方:
直接把注释删除即可,其他不用修改。(有文章还要添加,其实都不需要。这个文件都已经有,只是注释了而已)
三、重启
这里的重启主要是指在 Linux 下用 nohup 运行的服务。
// 使用 lsof 查找出 geoserver 服务对应的 PID lsof -i:8080 // 停止进程 kill -9 PID // 再次运行 nohup /user/geoserver/bin/startup.sh &