如何从 Java portlet (JSR-286) 中的字节数组下载 pdf 文件?

How to download a pdf file from byte array in Java portlet (JSR-286)?

我不熟悉Java,但我有一个任务要解决

我有一个 JSR-286 portlet。有一个 download.jspx 带有一个应该下载 PDF 文件的按钮。该文件由 byte[] 数组中的 API 提供。

我尝试使用 File.createTempFile() 将文件保存在用户磁盘上,但是当应用程序部署在 Weblogic Server(门户)上时,它无法访问文件系统。

如何创建将从字节数组下载文件的按钮操作?

最后,我找到了从字节数组下载文件的解决方案

在download.jspx中:

<af:commandButton text="Печать" id="cbPrint"
                                styleClass="AFStretchWidth btn btn-default"
                                inlineStyle="text-align:center; width:100.0px; font-size:14px;margin:10px">
                <af:fileDownloadActionListener filename="download.pdf"
                                               contentType="application/pdf"
                                               method="#{RequestBean.downloadReport}"/>
              </af:commandButton>

在RequestBean.java

    public void downloadReport(FacesContext facesContext,
                               OutputStream outputStream) {
        try {
            outputStream.write(getPrintBytes());
            outputStream.flush();
            outputStream.close();
        } catch (Exception e) {
            logger.log(Level.SEVERE, "downloadReport", e);
        }
        facesContext.responseComplete();
    }