Загрузка файла Excel с использованием Jersey и Apache POI - Получение исключения ZIP - Неверная длина сохраненных блоков - PullRequest
0 голосов
/ 30 октября 2019

У меня есть конечная точка REST, написанная с использованием Джерси, которая выглядит следующим образом: я пытаюсь загрузить файл Excel и прочитать его содержимое с помощью Apache POI

@Path("/batch")
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    @Produces(MediaType.APPLICATION_JSON)
    public Response batchUploadAssets(@HeaderParam(HttpHeaders.AUTHORIZATION) final String authorizationHeader,
            @HeaderParam(CustomVamsHeaders.ORGANISATION) final Integer vamsOrg,
            final FormDataMultiPart formDataMultiPart,
            @Context final ContainerRequestContext request) {

   BodyPart bodyPart = formDataMultiPart.getBodyParts().get(0);

   final BodyPartEntity entity = (BodyPartEntity) bodyPart.getEntity();

   InputStream inputStream = entity.getInputStream();

   XSSFWorkbook workbook = new XSSFWorkbook(inputStream); -> This line throws the exception below

}

Exception StackTrace

java.util.zip.ZipException: invalid stored block lengths
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:586)
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readDeflated(ZipArchiveInputStream.java:551)
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.read(ZipArchiveInputStream.java:458)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at org.apache.poi.openxml4j.util.ZipArchiveThresholdInputStream.read(ZipArchiveThresholdInputStream.java:78)
.......
.......
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:307)

Работает нормально, когда я запускаю свое приложение на локальном экземпляре tomcat. Однако когда я развертываю свое приложение в экземпляре EC2 и получаю к нему доступ через AWS API Gateway, именно тогда я получаю эту ошибку. Есть идеи, что мне нужно делать по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...