前言
平时工作或者学习中,经常会遇到各种异常,在这里统一记录一下,方便日后(以后)更快速处理问题。
异常 1 openfeign找不到类OptionalDecoder
描述
nested exception is java.lang.NoClassDefFoundError: feign/optionals/OptionalDecoder。
在使用openfeign时,注入iface接口,由于找不到OptionalDecoder,导致创建iface接口bean失败。
原因
因为在openfeign的版本冲突,导致异常。本项目使用的是2.2.2,在引入的其他模块中,使用的是2.1.0
解决
修改版本号,使用同一版本。我这里修改为2.1.0
异常 2
Package should contain a content type part [M1.13]
描述
spring-boot项目在做poi导出的时候,需要读取项目中的excel文件,在读到文件流,通过流创建工作簿的时候,抛出异常:Package should contain a content type part [M1.13]
我使用的是xlsx后缀的文件,创建的工作簿是XSSFWorkbook,按理是不会出现这个异常的。
让人疑惑的是:
1.xlsx和XSSFWorkbook是对应的
2.文件是新建的,不是通过xlx 转后缀得到的
原因
换了个模板,又抛出另外的异常:java.util.zip.ZipException: invalid stored block lengths
这是因为把excel模板文件也重新编码了,导致excem模板文件格式损坏
解决
解决方法,添加maven-resources-plugin插件,指定excel文件不编码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<!-- 需要过滤掉不需要编码的文件:过滤后缀为.xlsx或者.xls的所有文件,不对其进行统一编码-->
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
添加插件之后,两个异常都解决了。具体为什么两个文件会有两个不同的异常,并且添加这个插件后,两个异常都解决了,还需要进一步探究。