Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:125)
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:223)
... 31 common frames omitted
原因是: 在编写yml文件时, 这个文件可能是使用了GBK的编码方式, 在读取这个文件时, 如果文件有注解(试了一下,好像中文个数为奇数报错), 它会认为读到的字节为半个字节, 要求要为1
第一种:
可能是你的application.yml文件编码格式有问题,改为UTF-8,如下:
第二种:
可能就是你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,这时就需要你把application.yml中的内容全部复制,然后删除,再新建一个application.yml文件,将复制的内容拷贝进去再运行项目就不会报错了。
第三种:
干脆一点,要么修改编码方式, 要么去掉注解.
第四种:
pom中增加以下:
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
想要实时关注更多干货好文,扫描下图关注: