конвертировать SelfExpandingBufferedInputStream в poi XSSFWorkbook

avatar
Sooriya
9 августа 2021 в 05:42
75
0
1

Я получаю SelfExpandingBufferedInputStream из ответа клиента и хочу преобразовать его в XSSFWorkbook poi. Но я получаю ошибку ниже,

java.lang.UnsupportedOperationException: RESTEASY003000: SelfExpandingBufferredInputStream всегда помечен индексом 0. at org.jboss.resteasy.client.jaxrs.engines.SelfExpandingBufferredInputStream.mark(SelfExpandingBufferredInputStream.java:39) в java.io.FilterInputStream.mark(FilterInputStream.java:201)

ниже приведен пример кода, используемый для подачи XSSFWorkbook,

final Response httpResponse = webTarget.path(REQUEST_PATH).resolveTemplate("docId", docId)
                    .request("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")// same error with and without this
                    .header(RequestInvokerConstants.ACCEPT_TYPE, MediaType.WILDCARD )
                    .header("context", context).get();
             InputStream inputStream = httpResponse.readEntity(InputStream.class);
             Workbook workbook = new XSSFWorkbook(inputStream); //getting error in this line

Ответом restClient.downloadDocument будет "ClientResponse$InputStreamWrapper", который будет назначен InputStream

enter image description here

poi-ooxml и версия poi 4.1.2

Заранее спасибо!!

Источник
Gagravarr
9 августа 2021 в 09:11
1

Похоже, у вас InputStream, который не полностью соответствует спецификации. Попробуйте завернуть в BufferedInputStream?

Sooriya
9 августа 2021 в 13:23
0

@Gagravarr спасибо за ответ. Пробовал с этим и раньше, но получил такое же исключение

Ответы (0)