Geoserver跨域問題


1 Geoserver位war包,使用Tomcat發布的情況

由於geoserver為war形式,需要解決tomcat跨域問題,geoserver版本為2.9.1。

(1)下載跨域war包

下載cors-filter-1.7.jar,Java-property-utils-1.9.jar這兩個庫文件,放到tomcat的lib目錄下,即ApacheTomcat\lib。

Download eoserver_CROS_jar.rarcesium加載資源目標站點跨域設置.rar (NEW)


(2) 修改ApacheTomcat\webapps\geoserver\WEB-INF\web.xml中的配置文件

    <filter>    
        <filter-name>CORS</filter-name>    
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>    
        <init-param>    
         <param-name>cors.allowOrigin</param-name>    
            <param-value>*</param-value>    
        </init-param>    
        <init-param>    
         <param-name>cors.supportedMethods</param-name>    
            <param-value>GET, POST, HEAD, PUT, DELETE</param-value>    
        </init-param>    
        <init-param>    
         <param-name>cors.supportedHeaders</param-name>    
            <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>    
        </init-param>    
        <init-param>    
            <param-name>cors.exposedHeaders</param-name>    
            <param-value>Set-Cookie</param-value>    
        </init-param>    
        <init-param>    
            <param-name>cors.supportsCredentials</param-name>    
            <param-value>true</param-value>    
        </init-param>    
    </filter>    
    <filter-mapping>    
        <filter-name>CORS</filter-name>    
        <url-pattern>/*</url-pattern>    
    </filter-mapping>  

(3)然后重啟geoserver 就好了。

 

2 自行安裝Geoserver方式下的跨域的解決

Geoserver的跨域資源訪問需要修改2個地方:

  • GeoServer 2.11.2/webapps/geoserver/WEB-INF/web.xml
  • GeoServer 2.11.2/webapps/geoserver/WEB-INF/lib

(1) 修改web.xml

打開Geoserver安裝目錄下webapps/geoserver/WEB-INF/web.xml。
找到filter和 filter-mapping相鄰的地方。發現有 2處xml被注釋掉了。上面寫的: Uncomment following filter to enable CORS 。所以,我們把下面的注釋去掉即可。
去掉后如下所示:

 

(2) 拷貝jetty-servlets-9.2.13.v20150730.jar到Geoserver的安裝目錄下的lib目錄

上面提到過,需要jetty-servlets-9.2.13.v20150730.jar這個文件,我們是如何確實是9.2.13.v20150730這個版本號的呢?可以到Geoserver的安裝目錄下的lib文件夾中查看,如下:

這樣就可以確定,我們需要的jetty-servlets版本是9.2.13.v20150730了。

https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-servlets

或者這里:http://repo1.maven.org/maven2/org/eclipse/jetty/jetty-servlets/ 下載即可。

下載后,將jetty-servlets-9.2.13.v20150730.jar復制到Geoserver安裝目錄下的webapps/geoserver/WEB-INF/lib文件夾中。

 

(3)重啟Geoserver服務

在Windows下方的任務欄空白處右鍵單擊,選擇任務管理器。點擊對話框左下角的【詳細信息】,就會展開詳細頁。找到【服務】這個頁簽。在geoserver項上右鍵單擊重啟即可。

 

參考文章

GeoServer配置CORS(跨域資源共享)

解決Geoserver請求跨域的幾種思路

geoserver跨域問題解決方案

Geoserver 2.11.2安裝及CORS跨域資源訪問配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM