POI com out Memory

5 respostas
P

Pessoal…

estou tentando fazer upload em um arquivo excel com 500mil linhas, e está causando o erro de memória… coloquei no arguments p -Xmx512mb e tal, só que não funcionou…

Exception in thread "http-bio-8080-exec-7" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.io.ByteArrayOutputStream.write(Unknown Source) at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:115) at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:55) at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:82) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:220) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:186) at br.com.simcard.LeituraArquivoPOI.<init>(LeituraArquivoPOI.java:43) at br.com.simcard.Upload.anexos(Upload.java:23) at servlet.br.com.simcard.ServletUpload.doPost(ServletUpload.java:76)

5 Respostas

E

Esse tal arquivo Excel com 500.000 linhas está dando pano pra manga. Qual o tamanho dele em bytes?

E

Ah, agora entendi. O seu método está abrindo o arquivo, e ao tentar abri-lo, está consumindo toda a memória disponível. Eu temo que não haja uma solução trivial para seu problema.

Por acaso você consegue abrir esse arquivo no Excel?

P

consigo sim… ele tem aproximadamente 30MB

dizem que tem que aumentar a memória do VM, mas não sei como, pois já coloquei em vários lugares e nada

W

Sei que o POI tem um conjunto de Classes para trabalhar com arquivos grandes, mas, eu nunca usei. Não custa tentar, aqui tem uma explicação básica: http://stackoverflow.com/questions/4897766/processing-large-xlsx-file-in-java

[]'s

P

Não to conseguindo colocar o nem no Run Configurations…

eu to usando o XSSF

Criado 3 de janeiro de 2013
Ultima resposta 3 de jan. de 2013
Respostas 5
Participantes 3