почему я получаю java.lang.AbstractMethodError: org.apache.poi.xssf.usermodel.XSSFCellStyle.getFillBackgroundColorColor ()? - PullRequest
0 голосов
/ 26 апреля 2018

Я получаю эту ошибку в 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, и есть только две банки ojdbc5.jar и ojdbc6.jar

Я не знаю, почему я получаю эту ошибку при использовании getFillBackgroundColorColor().

По сути, я хочу получить цвет ячейки. Может кто-нибудь помочь мне решить проблему?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Наличие 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, вы можете проверить эту статью .

Как примечание, вы, вероятно, не должны поставлять ojdbc5.jar, это очень старый драйвер для очень старых JDK и Oracle DB.

0 голосов
/ 26 апреля 2018

AbstractMethodError обычно означает, что в зависимостях есть перепутывание. Возможно, вам не хватает poi-ooxml или у вас несколько версий?

...