2017-10-30 37 views
0

を入力ファイルをストリーミングするときに私は、リソースストリームとしての私の.xlsxを渡すことによって、Apacheの-POIとのxlsxワークブックオブジェクトを作成しようとしています:「持つZipException:設定無効なコード長」Apacheの-POIに

Workbook workbook = WorkbookFactory.create(RFQGenerator.class.getResourceAsStream("/com/lumos/xlsx_manager/es/da/template.xlsx")); 

FileInputStreamをローカルファイルパスを通して私のtemplate.xlsxを渡すとき、私は成功したワークブックをインスタンス化することができますが、私は、リソースのストリームを渡すとき、私は例外を取得:

java.io.IOException: Failed to read zip entry source 
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:103) 
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324) 
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:184) 
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:149) 
at com.lumos.xlsx_manager.es.da.RFQGenerator.createRfq(RFQGenerator.java:30) 
at com.lumos.xlsx_manager.es.da.Firebase$2.onChildAdded(Firebase.java:88) 
at com.google.firebase.database.core.ChildEventRegistration.fireEvent(ChildEventRegistration.java:81) 
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:65) 
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:58) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:748) 
Caused by: java.util.zip.ZipException: invalid code lengths set 
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164) 
at java.util.zip.ZipInputStream.read(ZipInputStream.java:194) 
at org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.read(ZipSecureFile.java:220) 
at java.io.FilterInputStream.read(FilterInputStream.java:107) 
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:132) 
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:56) 
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:100) 
... 11 more 

の.xlsx私は渡しているといけません圧縮されているかもしれませんが、おそらくそれがリソースストリームとどのように機能するのでしょうか。リソースへのアクセスを介してApache-POIにファイルを渡す方法に関するアイデアはありますか?

+0

どのようにリソースに変換していますか?私の推測では、CRLF/LFの変更をバイナリファイルに適用するなど、ビルド段階でそれを破壊している – Gagravarr

答えて

関連する問題