最近上线一个 医药ERP,帮客户导入基础数据,比如药品档案,客户给我的是excel文档,之前都是在excel拼接insert语句,单表还好说,处理多表的话还是很麻烦的,而且导入也是个常态化的工作。
于是想先写个简单的小工具,在读取excel的时候报错:
java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream
更具体的信息如下:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 25 more
很显然,是缺少了 commons-io 包,于是在 maven pom.xml 文件中进行了引入
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
这样就解决了:java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream 的问题。
网上有解决方案说,还需要引入commons-lang 和 javassist。我这里没需要,如果引入 commons-io 还报错的,可以试试再引入commons-lang 和 javassist。