Erreur lors de la lecture d'Excel .XLSX avec Apache POI

Je suis en utilisant Apache POI 3.8 bibliothèques pour lire un fichier XLSX dans une application web. Le code suivant fonctionne parfaitement bien à partir d'une console Java app:

InputStream inputFS = new FileInputStream("test.xlsx");
Workbook workbook = new XSSFWorkbook(inputFS); //below exception is thrown on this line
Sheet sheet = workbook.getSheetAt(0);

mais jette une "erreur de lecture" lorsqu'il est utilisé dans l'application web. Un extrait de la trace de la pile est collé ci-dessous:

java.io.IOException: Read error
at java.io.FileInputStream.readBytes(Native Method) ~[na:1.6.0_31]
at java.io.FileInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.io.FilterInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.io.PushbackInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.readFully(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.readLOC(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.getNextEntry(Unknown Source) ~[na:1.6.0_31]
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:51) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:83) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:228) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:187) ~[poi-ooxml-3.8-20120326.jar:3.8]
at com.corp.ReportManager.parseExcelReport(ReportManager.java:575) [ReportManager.class:na]

JARs suivants sont inclus dans le classpath (dans le même ordre):

poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
xbean.jar
dom4j-1.6.1.jar

Il ne semble pas être liée à la mémoire de questions depuis que j'ai rassemblé quelques tas de l'utilisation des stats juste avant d'invoquer le code ci-dessus. Le fichier XLSX est de 1,15 MO en taille.

##### Heap utilization statistics [MB] #####
Used Memory:13 MB
Free Memory:9 MB
Total Memory:23 MB
Max Memory:247 MB
votre web app afficher/modifier les fichier de votre lecture?
L'application web a accès au fichier, si c'est ce que vous demandez. Il lit uniquement (pas de modification). Sur une note connexe, la web app processus XLS (l'ancien format binaire) des fichiers sans problème. C'est seulement avec les fichiers XLSX qu'il se heurte à un problème.
sont l'une des nouvelles fonctionnalités utilisées qu'elle ne supporte pas? poi.apache.org/spreadsheet/index.html

OriginalL'auteur Web User | 2012-06-21