Получение "java.lang.NoClassDefFoundError" для Testng Поставщик данных с Excel
Я не могу пройти мимо ошибки "java.lang.NoClassDefFoundError"
Пробовал: 1- Очистить проект 2- Обновление testng xml 3- Проверен пакет / структура класса
Кажется, ничего не работает
Примечание: я не использую Maven, и все файлы JAR являются самыми последними (Testng, Apache, Selenium)
Код тестового класса:
@DataProvider(name ="calldata")
public Object[][] getData() {
ExcelUtility util = new ExcelUtility("excel path");
int rows = util.getRowCount(0);
Object data [][] = new Object[rows] [6];
for(int i=1; i<rows; i++)
{
data[i][0]=util.getData(0, i, 0);
data[i][1]=util.getData(0, i, 1);
data[i][1]=util.getData(0, i, 2);
data[i][1]=util.getData(0, i, 3);
data[i][1]=util.getData(0, i, 4);
data[i][1]=util.getData(0, i, 5);
}
return data;
}
@Test(dataProvider ="calldata")
public void AddaDependent(String url, String client, String eliggrp, String empnumber, String firstname, String SSN)
{
Код служебной программы Excel:
пакет AllExcel;
импорт java.io.File; import java.io.FileInputStream;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
открытый класс ExcelUtility {
XSSFWorkbook wb;
XSSFSheet sheet1;
public ExcelUtility(String excelPath)
{
try
{
File src = new File(excelPath);
FileInputStream fis= new FileInputStream(src);
wb = new XSSFWorkbook(fis);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
public String getData(int sheetNumber, int row, int column)
{
sheet1 = wb.getSheetAt(0);
String data = sheet1.getRow(row).getCell(column).getStringCellValue();
return data;
}
public int getRowCount(int sheetIndex)
{
int row = wb.getSheetAt(sheetIndex).getLastRowNum();
row = row+1;
return row;
}
}
Ошибка:
[RemoteTestNG] обнаружил TestNG версии 6.14.3
[Утилиты] [ОШИБКА] [Ошибка] java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile в org.apache.poi.openxml4j.opc.OPCPackage. открыть (OPCPackage.java:298) в org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37) в org.apache.poi.xssf.usermodel.XSSFWorkbook.
3 ответа
В основном, по ссылке Акселя, я скопировал "банку обычного сжатия", и упомянутая ошибка исчезла, теперь я получаю еще одну ошибку, которую необходимо устранить в другом вопросе. закрывая это сейчас
Скачайте jar-файлы apache compress и добавьте в библиотеку, я попробовал это, и все заработало нормально.
Пока вы не используете Maven, вы можете скачать банку отсюда. Добавьте его в свой путь к классу, и он должен работать: https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.2
Причина в том, что Apache удалил интерфейс ListValuedMap из commons-Collections4-4.0.