GeoServer 安裝、跨域
阿新 • • 發佈:2021-09-03
最近有需要釋出一些地圖服務。
以前主要是以 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 &