【JAVA+Geoserver】使用Geoserver的REST API发布样式,文本丢失问题,已解决

news2024/11/25 16:50:26

文章目录

    • 问题描述
    • 原因分析
      • 在geoserver检查sld文本
      • 推测一、是否是geoserver-manager的API优化sld文本,导致文本内容丢失
        • 结论:geoserver-manager并没有优化文本
      • 推测二、API接口本身就有问题
        • 结论:可以确定是geoserver的内部出现问题
    • 解决方法
    • 在代码中如何解决?

解决方法直接从目录跳到最后

问题描述

使用geoserver-manager的工具在发布(创建和修改)样式时,发布的文本和传输的sld文本不一致。导致效果会变成下面这样:

image-20230830144646089

image-20230830144622507

原因分析

在geoserver检查sld文本

上面是我传输的文本

image-20230830144745415

下面是实际的效果

image-20230830144802230

经过比对,不仅xml的标签被改动,fill的属性内容也丢失了,发生了严重的bug

推测一、是否是geoserver-manager的API优化sld文本,导致文本内容丢失

第一时间就想到,可能是某种优化器将标签进行了替换和删减。直接拔源码查看

  1. Debug 到下面的位置进行检查

image-20230830145510584

image-20230830145423394

  1. 检查请求体中的数据是否被“篡改”
    • 到这里可以发现我们传入的sld文本被转成二进制了
    • idea支持以文本显示的形式展示,进入查看如下,可以确定的是,文本在发送前就是没有问题的

image-20230830145701620

结论:geoserver-manager并没有优化文本

推测二、API接口本身就有问题

测试方法,使用apifox或者postman去发布样式,配置如下

image-20230830150014572

请求头直接从工具内复制出来就行

image-20230830150429428

测试结果:效果和使用geoserver-manager结果一样,文本都是丢失的

结论:可以确定是geoserver的内部出现问题

解决方法

推荐阅读原文,搜了好久终于找到的关键所在 http://t.csdn.cn/DwY2z

总结原因,就是这个更新样式的接口,在后续的geoserver的版本更新中,新增了一个叫raw的参数,如果传入为false就不会覆盖原文。而恰恰官方给设置的值就是false。

验证:在apifox里添加这个参数raw=true,再请求这个接口

image-20230830150453097

查看效果

image-20230830150530674

问题解决。

在代码中如何解决?

安装原文的方法是要求自定义一个请求。自己在尝试重写的过程中发现了一个很眼熟的参数如下:

image-20230830154550894

不难发现,其实最新版的工具已经加入了该参数,尝试修改一下自己的发布样式方法:

加了以下两个参数

image-20230830154648043

就可以解决问题了

如果没有参数,就把geoserver-manager升级到1.70即可

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

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

相关文章

CSS布局,表格按钮无线延长

C有时候有有时候没有,如下样式会导致B在ctrl滚轮放大缩小中的表格会无限加宽 .A{ display: flex; width: 100% } .B{ flex: 1 } 解决方案: 1.如果C一直在 .A{display: flex; width: 100% justify-content: space-between; } .B{width: calc(100% - 200…

移动隔断墙的用途和空间布局,设计合适的结构,包括固定方式

移动隔断墙的用途: 1. 划分空间:移动隔断墙可以在需要时将一个大空间划分为多个小空间,以满足不同的使用需求。 2. 提供隐私:移动隔断墙可以为需要隐私的区域提供屏障,例如办公室中的会议室或私人办公室。 3. 增加灵活…

C语言程序设计——小学生计算机辅助教学系统

题目:小学生计算机辅助教学系统 编写一个程序,帮助小学生学习乘法。然后判断学生输入的答案对错与否,按下列任务要求以循序渐进的方式分别编写对应的程序并调试。 任务1 程序首先随机产生两个1—10之间的正整数,在屏幕上打印出问题…

2023年高教社杯 国赛数学建模思路 - 案例:感知机原理剖析及实现

文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…

可直接运营的餐饮外卖点餐自提单多门店小程序开发演示

适合鲜花店、蛋糕店、奶茶店、餐饮店、便利店等门店商家的小程序。 小程序系统支持外卖和自提两种模式,帮助商家打造自己的私域流量池,减少对美团和饿了么的依赖,提升用户点餐、就餐体验。 支持会员签到获取积分的功能,积分可用…

喜报|擎创科技携手华胜天成,深度探索企业数字化转型之路

近日,上海擎创信息技术有限公司(简称“擎创科技”)与北京华胜天成科技股份有限公司(简称“华胜天成”)达成战略合作伙伴关系。 擎创科技副总裁冯陈湧与华胜天成副总裁崔勇、助理总裁郭涛一致认为在金融、保险、证券、…

神代码鉴赏

1:瞒天过海 猜下如下代码会输出啥: public static void main(String[] args) {// \u000d System.out.println("coder Hydra"); }啥也不输出,不,看结果: 神奇吧!这是因为\u000d就是换行符的unicode编码&a…

hive表向es集群同步数据20230830

背景:实际开发中遇到一个需求,就是需要将hive表中的数据同步到es集群中,之前没有做过,查看一些帖子,发现有一种方案挺不错的,记录一下。 我的电脑环境如下 软件名称版本Hadoop3.3.0hive3.1.3jdk1.8Elasti…

Oralce Client11和PL/SQL12安装

初始环境: 1.阿里云轻量应用服务器已经安装Oracle11g https://blog.csdn.net/testleaf/article/details/111826134 2.阿里云轻量应用服务器已经配置Oracle11g https://blog.csdn.net/testleaf/article/details/109096654 具体目标: 1.安装Oralce Client1…

盘点国内2023上半年低无代码平台TOP10:你用了哪款?

随着数字化转型的加速,无代码/低代码平台以其高效、灵活和易用的特性,正在改变着企业应用开发和部署的方式。这些平台正在成为越来越多企业的首选,因为他们可以快速构建和部署应用,以适应不断变化的业务需求。在这个热潮背后&…

【CSS】解决对齐的小问题

问题: 表单或者页面上可能遇到文字无法对平均分,带有冒号的文本无法左右对齐的情况 常见的解决方式: 解决如下图 仍无法解决对齐的问题,还需要考虑字数 解决 这里用css的方式解决 增加 i 标签 固定宽度,设置 i …

IT 支持人员如何应对现代教育技术挑战

将技术融入教学实践为教育行业带来了重大变化。特别是近几年,技术在教育机构提供的产品和服务水平方面发挥了越来越重要的作用。 随着混合灵活教学(HyFlex)教学模式成为新的当务之急,学生和教职员工都希望技术能够满足自己对灵活…

Java实现根据关键词搜索当当商品列表数据方法,当当API接口申请指南

要通过当当网的API获取商品列表数据,您可以使用当当开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过当当开放平台API获取商品列表: 首先,确保您已注册成为当当开放平台的开发者,并创建…

CSS学习笔记02

CSS笔记02 美化网页元素 为什么要美化网页 目的: 有效的传递页面信息美化网页、页面漂亮、才能吸引用户突显页面的主题提高用户的体验 span标签 span标签是短语内容的通用行内容器,它本身并没有任何特殊语义。 通常我们使用span标签来把我们想要重…

【1654. 到家的最少跳跃次数】

来源:力扣(LeetCode) 描述: 有一只跳蚤的家在数轴上的位置 x 处。请你帮助它从位置 0 出发,到达它的家。 跳蚤跳跃的规则如下: 它可以 往前 跳恰好 a 个位置(即往右跳)。它可以 …

BRAM资源不够用?不怕!这里有FPGA BRAM省资源小秘招!

FPGA的BRAM和LUT等资源都是有限的,在FPGA开发过程中,可能经常遇到BRAM或者LUT资源不够用的情况。 一般建议BRAM和LUT资源的消耗不要超过80%,当然高端一点的FPGA芯片也可以放宽到90%,超过这个限制,可能就会出现时序违例…

必看!银行业软件测试岗位需求暴增的原因解密!

根据2023年3月中共中央、国务院印发《党和国家机构改革方案》,要求统筹推进中国人民银行分支机构改革。包括:撤销中国人民银行大区分行及分行营业管理部、总行直属营业管理部和省会城市中心支行,在31个省(自治区、直辖市&#xff…

【解决】提示“找不到该项目的文件或文件夹如何删除”办法

在删除一些文件或文件夹中出现操作错误,后面想删除文件或文件夹时,弹出以下的状态栏提示↓↓↓ 此时无论怎么重启计算机还是快捷键都删除不了。 那么可采取下面的方法: ① 在该文件或文件夹内新建记事本,在记事本中输入以下代码…

QT设置mainwindow的窗口title

QT设置mainwindow的窗口title 在QT程序中,通常会有**aaaa-[bbbbbbb]**这种形式的title,对于刚上手qt的程序员同学,可能会简单的以为修改这种title,就是使用setWindowTitle这个接口,其实只对了一半,这种形式…

SpringBoot 使用 EMQX

一、SpringBoot服务器端 1. 在centos搭建 EMQX服务 2. 创建API密码 3. 在SpringBoot 的yml中添加mqqt的配置 #配置 emqx:ip: 47.109.49.176port: 18083api: xxxxxxxx (自己的api)secret: xxxxxxxxx (自己的secret) 4. 因为…