从零开始学GeoServer源码(二)添加支持arcgis切片功能

文章目录

    • 参考文章
    • 环境
    • 背景
    • 1、配置打包好的程序
      • 1.1、下载GeoServer的war包
      • 1.2、下载GeoWebCache
      • 1.3、拷贝jar包
      • 1.4、修改配置文件
        • 1.4.1、拷贝geowebcache-arcgiscache-context.xml
        • 1.4.2、修改geowebcache-core-context.xml
        • 1.4.3、修改geowebcache-servlet.xml
      • 1.5、配置切片信息
    • 2、源码配置

参考文章

https://juejin.cn/post/7212513340508536893

环境

开发环境Win10+IDEA23.3.5+jdk11+geoserver2.24.x
使用的geowebcache组件 1.26.1

背景

GeoServer自带了GeoWebCache插件,但是他又把里面识别arcgisLayer的功能给摘了出去。所以想要只部署一个GeoServer并且支持arcgis切片的话,就需要对GeoServer进行配置。以下列出两种方式:1、配置打包好的程序;2、修改源码配置,自己打包。

1、配置打包好的程序

1.1、下载GeoServer的war包

从GeoServer官网(https://geoserver.org/download/)下载war包。目前最新稳定版是2.26.1。单击下图红框中的版本号就能进入资源页面。如果你使用的是历史版本,可以点击【Archive】找到版本号后点击版本号,就能进入对应版本的资源页面。

注:插件和geoserver最好是对应上,以免出现不可预知的问题。
在这里插入图片描述
在这里插入图片描述

1.2、下载GeoWebCache

从GeoWebCache官网找到资源链接在这里插入图片描述
进入资源下载页面:https://sourceforge.net/projects/geowebcache/files/geowebcache/
目前最新版本是1.26.1。我本地geoserver代码是2.24.x,自测使用1.26.1没问题。
在这里插入图片描述

1.3、拷贝jar包

将GeoWebCache中的gwc-arcgiscache-1.26.1.jar拷贝到GeoServer中
jar包原始目录geowebcache1.26.1\WEB-INF\lib
在这里插入图片描述
拷贝到geoserver2.26.1\WEB-INF\lib
在这里插入图片描述

1.4、修改配置文件

在geoserver安装包geoserver2.26.1\WEB-INF\lib中找到jar包gs-gwc-2.26.1.jar, 有的版本或多-SNAPSHOT如:gs-gwc-2.21-SNAPSHOT.jar。

1.4.1、拷贝geowebcache-arcgiscache-context.xml

用解压工具打开jar包,将geowebcache1.26.1\WEB-INF\geowebcache-arcgiscache-context.xml拷贝到压缩包中
在这里插入图片描述

1.4.2、修改geowebcache-core-context.xml

打开压缩包中的geowebcache-core-context.xml文件,添加如下配置

<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

添加后的结果
在这里插入图片描述
保存后关闭文件。此时压缩工具提示更新包内容,一定记得点确定
在这里插入图片描述

1.4.3、修改geowebcache-servlet.xml

打开压缩包中的geowebcache-servlet.xml文件,添加如下配置

<import resource="geowebcache-arcgiscache-context.xml"/>

添加后的结果
在这里插入图片描述
记得保存,更新压缩包内容

1.5、配置切片信息

启动Tomcat(我本地测试用Tomcat习惯了),运行geoserver。
此时在文件夹中找到文件geoserver2.26.1\data\gwc\geowebcache.xml
配置上arcgis切片信息,保存修改。
在这里插入图片描述
之后进入geowebcache界面http://localhost:8080/geoserver2.26.1/gwc/demo。拉到页面底端,单击【Reload TileLayerConfiguration】按钮,重新加载切片图层配置信息。这样就能看到配置的图层了。
在这里插入图片描述
加载成功的页面
在这里插入图片描述
加载失败后会提示400,并附带提示信息。通常由于xml配置错误导致,请仔细检查配置信息
在这里插入图片描述
下图是配置成功的样例,显示了配置的图层
在这里插入图片描述
在geoserver中【切片图层】中也能看到添加的图层
在这里插入图片描述

2、源码配置

打开目录src/gwc/src/main/resources/,将对应版本的文件拷贝过来,并修改和两个文件
在这里插入图片描述
在gwc模块下的pom添加依赖

    <dependency><groupId>org.geowebcache</groupId><artifactId>gwc-arcgiscache</artifactId><version>1.26.1</version></dependency>

在这里插入图片描述
在工程的根pom添加依赖。可能只需要最外部配置即可,我没测试,两个文件都改了。之后直接启动即可。(启动geoserver源码请看上一篇:https://blog.csdn.net/missingshirely/article/details/139741384)
在这里插入图片描述
运行代码后会在src/web/app/src/main/webapp/data/gwc/文件下生成geowebcache.xml文件,参考1.5中提到的方法配置切片信息。
多出的标签是geoserver自动生成的信息,不用管。GeoWebCache独立应用中配置之后不会对配置信息添加内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】Centos7 Jenkins 踩坑笔记

文章目录 1. docker pull 超时2. 初始化找不到 initialAdminPassword 1. docker pull 超时 docker pull 命令拉不下来 docker pull jenkins/jenkins:lts-jdk17 Error response from daemon: Get "https://registry-1.docker.io/v2/": 编辑docker配置 sudo mkdir -…

Java中的JSONObject详解

文章目录 Java中的JSONObject详解一、引言二、JSONObject的创建与基本操作1、创建JSONObject2、添加键值对3、获取值 三、JSONObject的高级特性1、遍历JSONObject2、从字符串创建JSONObject3、JSONObject与JSONArray的结合使用4、更新和删除键值对 四、错误处理1. 键值存在性检…

【大数据学习 | Spark-Core】Spark中的join原理

join是两个结果集之间的链接&#xff0c;需要进行数据的匹配。 演示一下join是否存在shuffle。 1. 如果两个rdd没有分区器&#xff0c;分区个数一致 &#xff0c;会发生shuffle。但分区数量不变。 scala> val arr Array(("zhangsan",300),("lisi",…

111.有效单词

class Solution {public boolean isValid(String word) {if(word.length()<3){return false;}int countV0,countC0;//分别统计原音和辅音for(int i0;i<word.length();i){if(Character.isLetterOrDigit(word.charAt(i))){if(word.charAt(i)a||word.charAt(i)e||word.charA…

安装python拓展库pyquery相关问题

我采用的是离线whl文件安装, 从官方库地址: https://pypi.org/, 下载whl文件, 然后在本地电脑上执行pip install whl路径文件名.whl 但是在运行时报错如下图 大体看了看, 先是说了说找到了合适的 lxml>2.1, 在我的python库路径中, 然后我去看了看我的lxml版本, 是4.8.0, 对…

如何启动多个libvirtd进程

导语:如何启动多个libvirtd,咋一想这不简单,多运行几个libvirtd不就完事,其实不然?为什么启动多个libvirtd,有何应用场景?当前libvirt代码架构是否支持启动多个libvirtd? 一、如何启动libvirtd # /usr/local/sbin/libvirtd --listen --listen 必须参数,监控tcp/ip c…

架构-微服务-服务网关

文章目录 前言一、网关介绍1. 什么是API网关2. 核心功能特性3. 解决方案 二、Gateway简介三、Gateway快速入门1. 基础版2. 增强版3. 简写版 四、Gateway核心架构1. 基本概念2. 执行流程 五、Gateway断言1. 内置路由断言工厂2. 自定义路由断言工厂 六、过滤器1. 基本概念2. 局部…

idea怎么打开两个窗口,运行两个项目

今天在开发项目的时候&#xff0c;前端希望运行一下以前的项目&#xff0c;于是就需要开两个 idea 窗口&#xff0c;运行两个项目 这里记录一下如何设置&#xff1a;首先依次点击&#xff1a; File -> Settings -> Appearance & Behavior ->System Settings 看到如…

零碎04 MybatisPlus自定义模版生成代码

目录 背景 动手开干 需要的依赖包&#xff0c;需要注意mybatis-plus-generator的3.5版本是没有兼容历史版本的。 定义一个CodeGenerator类&#xff0c;负责生成代码和配置属性 Entity模版 背景 MybatisPlus代码生成使用默认的velocity模版解决不了定制化的需求&#xff0…

CentOS8.5.2111(7)完整的Apache综合实验

一、实验目标 1.掌握Linux系统中Apache服务器的安装与配置&#xff1b; 2.掌握个人主页、虚拟目录、基于用户和主机的访问控制及虚拟主机的实现方法。 二、实验要求 练习使用linux系统下WEB服务器的配置方法。 三、实验背景 重庆工程学院为筹备“重庆工程大学”特申请了c…

Cocos编辑器

1、下载 下载地址&#xff1a;https://www.cocos.com/creator-download 2、编辑器界面介绍 官方链接&#xff1a;https://docs.cocos.com/creator/3.8/manual/zh/editor/ 3、项目结构 官方链接&#xff1a;https://docs.cocos.com/creator/3.8/manual/zh/getting-started/…

Easyui 实现订单拆分开票功能

Easyui 实现订单拆分开票功能 需求 1、实现一个订单开具多分发票功能&#xff1b; 2、支持拆行&#xff1b; 3、支持拆数量&#xff1b; 流程设计 1、操作页面展示订订单头信息&#xff0c;订单明细信息 2、点击新增发票按钮弹出一个弹出框用于创建一张拆分发票&#xff0c;弹…

解决 java -jar 报错:xxx.jar 中没有主清单属性

问题复现 在使用 java -jar xxx.jar 命令运行 Java 应用程序时&#xff0c;遇到了以下错误&#xff1a; xxx.jar 中没有主清单属性这个错误表示 JAR 文件缺少必要的启动信息&#xff0c;Java 虚拟机无法找到应用程序的入口点。本文将介绍该错误的原因以及如何通过修改 pom.xm…

推荐一款龙迅HDMI2.0转LVDS芯片 LT6211UX LT6211UXC

龙迅的HDMI2.0转LVDS芯片LT6211UX和LT6211UXC是两款高性能的转换器芯片&#xff0c;它们在功能和应用上有所差异&#xff0c;同时也存在一些共同点。以下是对这两款芯片的详细比较和分析&#xff1a; 一、LT6211UX 主要特性&#xff1a; HDMI2.0至LVDS和MIPI转换器。HDMI2.0输…

flink学习(7)——window

概述 窗口的长度(大小): 决定了要计算最近多长时间的数据 窗口的间隔: 决定了每隔多久计算一次 举例&#xff1a;每隔10min,计算最近24h的热搜词&#xff0c;24小时是长度&#xff0c;每隔10分钟是间隔。 窗口的分类 1、根据window前是否调用keyBy分为键控窗口和非键控窗口…

C语言解析命令行参数

原文地址&#xff1a;C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数&#xff0c;可以对命令行进行解析&#xff0c;下面给出一个示例&#xff0c;用的时候可以直接copy过去修改&#xff0c;很方便…

精密工装夹具加工:打造高精度产品

在现代制造业中&#xff0c;精密工装夹具加工扮演着关键角色&#xff0c;是打造高精度产品不可缺少的环节。 精密工装夹具的设计与制造&#xff0c;首先依赖于对加工工艺的深入理解与精准把握。工程师们需要根据待加工产品的形状、尺寸、精度要求以及加工设备的特性&#xff0c…

C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)

目录 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口&#xff08;同向双指针&#xff09; 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 题目截图&#xff1a; 此题所说的…

huggingface使用

import warnings warnings.filterwarnings("ignore") from transformers import pipeline#用人家设计好的流程完成一些简单的任务 classifier pipeline("sentiment-analysis") classifier( [ "Ive been waiting for a HuggingFace cours…

第六届机器人、智能控制与人工智能国际(RICAI 2024)

会议信息 会议时间与地点&#xff1a;2024年12月6-8日&#xff0c;中国南京 会议官网&#xff1a;www.ic-ricai.org &#xff08;点击了解大会参会等详细内容&#xff09; 会议简介 第六届机器人、智能控制与人工智能国际学术会议&#xff08;RICAI 2024&#xff09;将于20…