Generowanie PDF przy użyciu iText w Struts-2: strumień wyników typu nie działa

Moim wymaganiem jest wygenerowanie pliku PDF za pomocą iText, używam poniższego kodu do utworzenia przykładowego pliku 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();

Jeśli widzisz w powyższym kodzie, iText nie używa żadnego parametru inputStream, ale zapisuje bezpośrednio do wyjściowego strumienia odpowiedzi. Natomiast struts-2 nakazuje nam użycie parametru InputStream (patrz konfiguracja poniżej)

<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>

Wiem, że moja klasa powinna mieć gettery i settery dla inputStream i mam to również w klasie wymienionej w struts-configuration

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

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

Ale ponieważ iText naprawdę nie potrzebuje strumienia wejściowego, a pisze bezpośrednio do strumienia wyjściowego odpowiedzi, otrzymuję wyjątki, ponieważ nie ustawiam niczego dla parametru inputStream.

Daj mi znać, jak używać kodu iText w struts-2, mając jako wynik resultType

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion