Возврат содержимого PDF в качестве входного потока для API JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Возврат содержимого PDF в качестве входного потока для API Java

Сообщение Anonymous »

Я пытаюсь создать внутренний API на Java, который будет вызываться из внешнего интерфейса React и получать в качестве ответа PDF-файл. Я получаю PDF-файл, но не могу отправить его во внешний интерфейс как javax.ws.rs.core.Response.
Это не Spring-приложение, поэтому я не могу использовать ResponseEntity для отправки ответа в виде byte[].
Я пытаюсь отправить ответ как входной поток, но это дает мне следующую ошибку.
ExceptionEnti E com.ibm.commerce.foundation.rest.providers.ExceptionEntityProvider toResponse поток закрыт java. io.IOException: поток закрыт
Я проверил, используется ли поток дважды, а это нет. Код, который я использую, приведен ниже.

Код: Выделить всё

    @javax.ws.rs.GET
@javax.ws.rs.Path(value="downloadPdf")
public javax.ws.rs.core.Response downloadPdf(
@javax.ws.rs.PathParam(value="storeId") java.lang.String storeId,
@javax.ws.rs.QueryParam(value="objetId") java.lang.String objetId) {

final String METHODNAME = "downloadPdf";

try {
ContextService contextService = ContextServiceFactory.getContextService();
CommandContext commandContext = ContextHelper.createCommandContext(((com.ibm.commerce.component.contextserviceimpl.BusinessContextInternalService)contextService).getActivityToken());

TypedProperty paramInvMap = new TypedProperty();
paramInvMap.put("objectId", objetId);
InvoiceDownloadCmd downloadInvoicesCmd = (InvoiceDownloadCmd) CommandFactory.createCommand(InvoiceDownloadCmd.NAME, commandContext.getStoreId());
downloadInvoicesCmd.setCommandContext(commandContext);
downloadInvoicesCmd.setRequestProperties(paramInvMap);
downloadInvoicesCmd.execute();

return Response
.ok(downloadECMInvoicesCmd.pdfStream(), MediaType.APPLICATION_OCTET_STREAM)
.header("content-disposition","attachment; filename = myfile.pdf")
.build();
} catch (ECException e) {
e.printStackTrace();
}
return null;

};
Любые указания по этой проблеме здесь очень полезны. Если это неправильный подход, то какой способ рекомендуется отправить PDF-контент в качестве ответа на внешний интерфейс.

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-java-api

Вернуться в «JAVA»