首页 > 其他分享 >yaml to properties failed, reason: Parse yaml file content failed for namespace: application.yml [Ca

yaml to properties failed, reason: Parse yaml file content failed for namespace: application.yml [Ca

时间:2024-12-19 20:09:37浏览次数:4  
标签:failed snakeyaml content yaml 版本 org properties

背景

springboot2.2.x 升级到是springboot2.7.x,apollo-client也跟着升级到了2.0.1,配置中心使用.properties的应用启动正常,
使用.yml报了上面的错误

解决方案

  • 版本降级到1.33解决

下面是ai回答的结果
让我们尝试几个可能的解决方案:

  1. 检查你的 Spring Boot 版本和 SnakeYAML 版本是否匹配。对于 Spring Boot 3.x,建议使用:
<!-- Spring Boot 3.x -->
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>2.2</version>
</dependency>

<!-- Spring Boot 2.x -->
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.33</version>
</dependency>
  1. 如果你使用 Spring Boot parent,可以尝试在 properties 中覆盖版本:
<properties>
    <snakeyaml.version>2.2</snakeyaml.version>
</properties>
  1. 尝试清理依赖冲突:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>2.2</version>
</dependency>
  1. 检查 YAML 文件格式是否正确:
  • 确保缩进使用空格而不是制表符
  • 检查键值对格式
  • 确保冒号后有空格
  1. 如果以上都不行,可以尝试降级 SnakeYAML 版本:
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.33</version>
</dependency>
  1. 重新构建项目:
mvn clean package -U

根因探究

升级后的apollo-client在将yaml转properties的时候还是老版本snakeyaml的构造方法。

思考

其实这类问题很好解决,但是花了很长时间定位。

  1. method ()V 这种是构造函数报的错,理论自己应该推测出来时版本兼容问题
  2. 在搜索问题时丢失了异常的上下文,但也因此查到了是版本兼容问题,只是结果是springboot和snakeyaml的版本兼容
    https://github.com/spring-projects/spring-boot/issues/34405
  3. 再结合上下文是定位是apollo-client和snakeyaml的兼容问题

标签:failed,snakeyaml,content,yaml,版本,org,properties
From: https://www.cnblogs.com/lijiale/p/18617858

相关文章

  • pdfjs 报错提示Failed to load module script
    参考文章:pdfjs报错提示Failedtoloadmodulescript[JavaScript]MIMEtype异常在服务器好不容易配好nginx转发,jar包,静态资源等,访问网站一切ok,结果打开pdf时,无法预览:F12看了下,接口返回正常啊,说明接口没问题,接着看控制台,oh,问题在这:Failedtoloadmodulescript:Expecte......
  • 关于QFramework UIKit和ResKit生成的UI预制体打包后报错Failed to Create Res. Not Fi
     使用UIKit创建UIPrefb后打包发布后提示FailedtoCreateRes.NotFindByResSearchKeys:AssetName:basepanelBundleName:TypeName:UnityEngine.GameObject,找不到所需资源。下方如图1-1的报错。图1-1问题原因:一开始以为是没有按照教程所说的流程来创建。按照教程所说......
  • mysql9.1.0.msi的安装报错——Database_initialization_failed
    报错LogBeginningconfigurationstep:WritingconfigurationfileSavingmy.iniconfigurationfile...Savedmy.iniconfigurationfile.Endedconfigurationstep:WritingconfigurationfileBeginningconfigurationstep:UpdatingWindowsFirewallrulesA......
  • pikachu靶场SSCR漏洞测试报Warning: file_get_contents()警告信息
    1.这个警告Warning:file_get_contents()是PHP中的一个常见错误。可能的原因有很多。2.路径问题如果调用file_get_contents()时传递了一个文件路径,可能路径不正确或者文件不存在。确保文件路径正确且文件可访问。3.url问题如果传递的是URL,确保该URL是有效且可访问的......
  • SVN 报错 | svn: E170004: Commit failed (details follow): svn: E170004: Directory
    问题描述IDEA中通过SVN拉取项目后进行修改,第一次commit提交代码的时候成功提交,第二次修改后再提交的时候报错了,提示“Directory'xxx'isoutofdate”解决方法报错的原因是本地项目过时了,和svn服务器的项目版本不一致。需要先update更新本地的项目,再重新修改代码然......
  • PbootCMS中如何使用 [message:recontent] 和 [message:replydate] 标签显示留言的回复
    在PbootCMS中,使用 [message:recontent] 和 [message:replydate] 标签可以显示留言的回复信息和回复时间。这对于增强网站的互动性和用户满意度非常有用。以下是详细的步骤和代码示例,帮助你在PbootCMS中实现这一功能:基本语法:使用 {pboot:message} 标签来输出留言记录列......
  • httpd.service: Failed at step EXEC spawning usrsbinhttpd: Permission denied
    httpd.service:FailedatstepEXECspawningusrsbinhttpd:Permissiondenied‍apache编译安装之后,通过apachectlstart可以正常启动,注册为systemd服务时启动不了:[root@localhosthttpd-2.4.62]#systemctlstarthttpd.serviceJobforhttpd.servicefailedbecause......
  • httpd.service: Failed at step EXEC spawning usrsbinhttpd: Permission denied
    httpd.service:FailedatstepEXECspawningusrsbinhttpd:Permissiondenied‍apache编译安装之后,通过apachectlstart可以正常启动,注册为systemd服务时启动不了:[root@localhosthttpd-2.4.62]#systemctlstarthttpd.serviceJobforhttpd.servicefailedbecause......
  • httpd.service: Failed at step EXEC spawning usrsbinhttpd: Permission denied
    httpd.service:FailedatstepEXECspawningusrsbinhttpd:Permissiondenied‍apache编译安装之后,通过apachectlstart可以正常启动,注册为systemd服务时启动不了:[root@localhosthttpd-2.4.62]#systemctlstarthttpd.serviceJobforhttpd.servicefailedbecause......
  • HTTP content-type
    Content-Type(内容类型),一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些PHP网页点击的结果却是下载一个文件或一张图片的原因。Content-Type标头告诉客户端实际返回的内容的内容类型。......