ScannerException: while scanning for the next token found character ‘@‘ 问题解决

89 篇文章 0 订阅
78 篇文章 3 订阅

在把一个老项目修改为动态读取配置参数的时候,发现报了这个错误:

org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character ‘@’ that cannot start any token

分析:

产生此问题的原因:

1、一般情况下是因为,配置文件中写错了。请再三检查下项目的maven的pom文件中的  profiles  -  profile  -  properties下的属性名。看它是否能够和bootstrap.yml下的spring.profile.active名字是否一致。

很多人出错是因为从网上复制了一个配置,直接丢到了里面。自己不去看下配置项的名是否一致。导致的该错误的产生。

2、IDEA缓存的问题。

处理方法:

pom文件

<profiles>

    <profile>
        <id>dev</dev>
        <properties>
            <!--此处的profileActive的名字是自定义的。这个名字要和bootstrap.yml文件中的spring.profile.active @@包含的值名称一致-->
            <profileActive>local</profileActive>
        </properties>
    <profile>
    ...
</profiles>

bootstrap.yml文件对应

spring:
  profile:
    active: @profileActive@   #这个地方的名字要和 pom下的profile下的properties对的上

如果这一步没有问题的话,启动还是报了 '@'的异常的话,一般的情况下,应该是缓存的问题了。

缓存的问题一般你把IDEA右侧的maven,进行一下刷新操作,基本上就可以解决这个问题了。

总结

说个亲身经历,我以前刚上班的时候,公司的技术经理为了图省事,直接从网上copy了一个centos下的MySQL配置文件。然后作为正式环境使用。然后各种数据库的问题,后来一个高级工程师分析了下配置文件,发现配置参数就是普通的PC机的配置,根本就没有发挥服务器的优势。后来调整了缓冲大小。就再也没有问题了。

一般情况下,网络上的东西,其实有很多给出的结果或者答案,只是使用一定的场景,需要你甄别其中的情况,特别是一些配置文件之类的,一般的情况下,如果不是很熟悉,最好把每个配置项都认真读一遍。以防不测。这个不测看具体事故大小而定。

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值