获取nacos配置文件,文件包含中文或者中文注释导致springbootTest启动失败.

334 阅读1分钟

报错信息如下:


2024-07-22 15:06:30.603 ERROR 15136 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : parse data from Nacos error,dataId:service-common-dev.yml,data:javastack:
  username: 测试测试测试测试
  site: https://www.xxxxxxx.com




org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
	at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:176) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:171) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:126) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.scanner.ScannerImpl.scanToNextToken(ScannerImpl.java:1198) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:308) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:248) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:213) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:165) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:155) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.composer.Composer.checkNode(Composer.java:93) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.constructor.BaseConstructor.checkData(BaseConstructor.java:124) ~[snakeyaml-1.29.jar:na]
	at org.yaml.snakeyaml.Yaml$1.hasNext(Yaml.java:509) ~[snakeyaml-1.29.jar:na]

最后通过分析发现是nacos客户端获取远程配置过程中由于编码不一致导致,解决思路就是再加载时修改编码,查阅资料发现maven-surefire-plugin 插件可以.所以最终修改方案:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <testFailureIgnore>true</testFailureIgnore>
        <argLine>-Dfile.encoding=UTF-8</argLine>
    </configuration>
</plugin>

参考: blog.csdn.net/u012009613/… blog.csdn.net/Chameleons1…