GeoServer tomcat 跨域问题解决
用Openlayers访问GeoServer发布的矢量切片是,出现跨域访问问题,即 CORS 头缺少 'Access-Control-Allow-Origin
环境版本是:tomcat-9.0.41,GeoServer 2.18.1,OpenLayers 6.4.3,
通过查找GeoServer官方文档,修改GeoServer默认配置,实现跨域访问GeoServer服务,方法如下:
在tomcat服务部署文件中 找到Geoserver服务安装目录下WEB-INF文件夹的web.xml文件(D:...\apache-tomcat-9.0.41\webapps\geoserver\WEB-INF\web.xml)
找到下面两段被注释代码,并解除注释
<!-- Uncomment following filter to enable CORS in Tomcat. Do not forget the second config block further down.
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>*</param-value>
</init-param>
</filter>
-->
<!-- Uncomment following filter to enable CORS
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
注意:上面的第一段代码实现在tomcat服务器上,允许GeoServer跨域访问的
。在该web.xml文件中,同样注释了Jett服务器上,允许GeoServer跨域访问
的代码,经测试,只能取消相应服务器的允许跨域访问
注释,不然会出现不能运行GeoServer服务的问题
上述方法是修改GeoServer的配置实现跨域,也可以通过修改tomcat服务实现允许访问,方法如下:
- 下载 cors-filter.jar 和 java-property-utils.jar,地址如下
https://mvnrepository.com/artifact/com.thetransactioncompany/cors-filter/2.9.1
https://mvnrepository.com/artifact/com.thetransactioncompany/java-property-utils/1.16 - 将下载的两个 jar包 拷贝至 tomcat 的安装路径下 lib文件夹中,如:D:...\apache-tomcat-9.0.41\lib
最后,重启 tomcat,解决问题
分类:
GeoServer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)