我在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.jar
和ojdbc6.jar
我不知道为什么在使用getFillBackgroundColorColor()
时出现此错误。
基本上,我想获得一个细胞的颜色。有人可以帮我解决这个问题吗?
答案 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的旧驱动程序。