flink InputStream класса класса org.apache.commons.compress.archivers.zip.ZipFile $ 1 не реализует InputStreamStatistics - PullRequest
0 голосов
/ 23 сентября 2018

Я пытался загрузить Excel в рабочую книгу POI в программе Flink.Имеет такую ​​ошибку.

Причина: java.lang.IllegalArgumentException: InputStream класса класса org.apache.commons.compress.archivers.zip.ZipFile $ 1 не реализует InputStreamStatistics.в org.apache.poi.openxml4j.util.ZipArchiveThresholdInputStream. (ZipArchiveThresholdInputStream.java:63) в org.apache.poi.openxml4j.util.ZipSecureFile.getInputStream (ZipSecureFile.jp.jap.java.14).util.ZipSecureFile.getInputStream (ZipSecureFile.java:34) в org.apache.poi.openxml4j.util.ZipFileZipEntrySource.getInputStream (ZipFileZipEntrySource.java:66) в org.apache.poipackopop.opP.Pemp.opP.Pemp.opP.Play.PyPP.Play.PyPP.Play.PyPP.Play.PyPP.PextJava: 258) в org.apache.poi.openxml4j.opc.OPCPackage.getParts (OPCPackage.java:725) в org.apache.poi.openxml4j.opc.OPCPackage.open (OPCPackage.java:275) в org.apache.poi.openxml4j.opc.OPCPackage.open (OPCPackage.java:181) в org.apache.poi.xssf.usermodel.XSSFWorkbook. (XSSFWorkbook.java:323)

обратите внимание на тест https://github.com/apache/poi/blob/f509d1deae86866ed531f10f2eba7db17e098473/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java вот что упоминают об этом.Но как обойти это.Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Вы должны включить более новую версию commons-compress и затенить ее (есть разные плагины в Maven, Gradle, SBT).В качестве альтернативы вы можете использовать библиотеку HadoopOffice, которая имеет встроенную поддержку Flink, для чтения / записи файлов Excel (https://github.com/zuinnote/hadoopoffice/wiki)), и в ней есть пример того, как правильно затенять зависимость (см. https://github.com/ZuInnoTe/hadoopoffice/wiki/Using-Apache-Flink-to-read-write-Excel-documents)

...