Генерация PDF с использованием iText в Struts-2: поток типа результата не работает

Мое требование заключается в создании PDF-файла с помощью iText, я использую приведенный ниже код для создания образца PDF

Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph("success PDF FROM STRUTS"));
document.close();
ServletOutputStream outputStream = response.getOutputStream() ;
baos.writeTo(outputStream);
response.setHeader("Content-Disposition", "attachment; filename=\"stuReport.pdf\"");
response.setContentType("application/pdf");
outputStream.flush();
outputStream.close();

Если вы видите в приведенном выше коде, iText не использует какой-либо параметр inputStream, скорее он пишет непосредственно в outputtream ответа. Принимая во внимание, что struts-2 обязывает нас использовать параметр InputStream (см. Конфигурацию ниже)

<action name="exportReport" class="com.export.ExportReportAction">
    <result name="pdf" type="stream">
        <param name="inputName">inputStream</param>
        <param name="contentType">application/pdf</param>
        <param name="contentDisposition">attachment;filename="sample.pdf"</param>
        <param name="bufferSize">1024</param>
    </result>
</action>

Я знаю, что мой класс должен иметь геттеры и сеттеры для inputStream, и у меня это тоже есть в классе, упомянутом в Struts-Configuration.

private InputStream inputStream;
public InputStream getInputStream() {
    return inputStream;
}

public void setInputStream(InputStream inputStream) {
    this.inputStream = inputStream;
}

Но поскольку iText действительно не нуждается во входном потоке, а пишет непосредственно в выходной поток ответа, я получаю исключения, поскольку для параметра inputStream ничего не задается.

Пожалуйста, дайте мне знать, как использовать код iText в Struts-2, имеющий resultType в качестве потока

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос