关闭页面特效

GeoServer 跨域方法汇总

环境

  • Linux CentOS 7.5
  • tomcat 9.0.33
  • geoserver 2.15.2
  • geowebcache 1.10.0

操作步骤

Geoserver有多个跨域解决方法,在各个环境下有的有效有的无效,具体原因未知,请客官们自行尝试。在此只是对用到过成功的案例做个记录。

方法一(独立bat版现用方法)

  1. 找到geoserver配置文件/geoserver/WEB-INF/web.xml
    geoserver配置文件

  2. 文档中搜索关键词'cross-origin',发现web.xml中有两处被注释的节点,放开注释。
    filter
    filter-mapping

  3. 找到jetty-servlets-9.4.12.v20180830.jar,将其复制到/geoserver/WEB-INF/lib目录底下

  4. 重启Geoserver。这时候Geoserver可能会启动不了,报错503(Problem accessing /geoserver/web/. Reason: Service Unavailable Powered)

  5. 这时再下载对应 jetty-http-9.4.12.v20180830.jar 和 jetty-util-9.4.12.v20180830.jar jar包,放在WEB-INF/lib目录,再次重启即可(注意:jetty-servlets的jar包要跟jetty-util及jetty-http的jar包版本匹配)

  6. 重启geoserver

方法二

** 方法二与方法五类似,方法二是放在geoserver的lib下,方法五是放在tomcat的lib下。区别是独立版和tomcat版部署方式 **

  1. 同时下载cors-filter-1.7.jar 跟 java-property-utils-1.9.jar (其他版本可能会导致 geoserver 打不开,测试过用最新版本出现geoserver打不开),放进 /geoserver/WEB-INF/lib 文件夹里面

  2. /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>

方法三

  1. 下载跨域文件CrossOriginFilter.class,然后解压到 \geoserver\WEB-INF\classes,保持原有路径(\geoserver\WEB-INF\classes\org\mortbay\servlets\CrossOriginFilter.class)
    CrossOriginFilter

  2. 然后在 /geoserver/WEB-INF/web.xml 配置:

<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.mortbay.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>x-requested-with,content-type</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

方法四

  1. 编辑 geoserver\WEB-INF\web.xml,不需要引入任何库,进行如下配置
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

方法五(tomcat版现用方法)

  1. 基于tomcat可以对tomcat进行跨域

  2. 将cors-filter-2.4.jar 和 java-property-utils-1.9.1.jar 包放到 /tomcat/lib 下

  3. 修改/tomcat/conf/下的web.xml文件,在<web-app></web-app>节点中添加
    web-app下添加位置

<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>

__EOF__

作  者苍龙de链
出  处https://www.cnblogs.com/giser-s/p/12627482.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   苍龙de链  阅读(4328)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
1
0
关注
跳至底部
点击右上角即可分享
微信分享提示