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 ; (NEW)
(2) 修改ApacheTomcat\webapps\geoserver\WEB-INF\web.xml中的配置文件CORS com.thetransactioncompany.cors.CORSFilter cors.allowOrigin * cors.supportedMethods GET, POST, HEAD, PUT, DELETE cors.supportedHeaders Accept, Origin, X-Requested-With, Content-Type, Last-Modified cors.exposedHeaders Set-Cookie cors.supportsCredentials true CORS /*
(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了。
到
或者这里: 下载即可。
下载后,将jetty-servlets-9.2.13.v20150730.jar复制到Geoserver安装目录下的webapps/geoserver/WEB-INF/lib文件夹中。
(3)重启Geoserver服务
在Windows下方的任务栏空白处右键单击,选择任务管理器。点击对话框左下角的【详细信息】,就会展开详细页。找到【服务】这个页签。在geoserver项上右键单击重启即可。
参考文章