为什么我得到java.lang.AbstractMethodError:org.apache.poi.xssf.usermodel.XSSFCellStyle.getFillBackgroundColorColor()?

时间:2018-04-26 20:23:10

标签: java excel apache-poi

我在Java中遇到以下错误:

Color cellColor = (row.getCell(1).getCellStyle().getFillBackgroundColorColor());`
  

java.lang.AbstractMethodError:org.apache.poi.xssf.usermodel.XSSFCellStyle.getFillBackgroundColorColor()Lorg / apache / poi / ss / usermodel / Color;

我还检查了WEB-INF/lib文件夹,只有两个Jars ojdbc5.jarojdbc6.jar

我不知道为什么在使用getFillBackgroundColorColor()时出现此错误。

基本上,我想获得一个细胞的颜色。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

AbstractMethodError通常意味着依赖项中存在混淆。也许你错过了poi-ooxml或者有多个版本吗?

答案 1 :(得分:2)

拥有WEB-INF/lib意味着您正在部署WAR文件。在这种情况下,库可以在几个不同的地方,例如$TOMCAT_HOME/lib。检查您的类路径,例如通过打印属于它的所有URL:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) cl).getURLs();
for (URL url : urls) {
    System.out.println(url.getFile());
}

并确保POI的版本正确。如果您使用的是Tomcat,可以查看this article

作为旁注,你可能不应该发送ojdbc5.jar,它是一个非常古老的JDK和Oracle DB的旧驱动程序。