我已经开始使用Flying Saucer从JSF文件创建PDF,它很棒! 现在我有一个问题:我想在我们的应用程序中使用它来创建PDF而不阻止HTTP响应。如何通过Flying Saucer创建PDF而不阻止HTTP响应?
请看下面的代码:
ServletOutputStream outputStream = response.getOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(new URL("http://localhost:8080/pdf2.faces").toString());
renderer.layout();
renderer.createPDF(outputStream);
outputStream.flush();
根据我的理解ITextRenderer加载整个JSF在3号线(在功能loadDocument)。这意味着ITextRenderer要求整个JSF将由服务器创建。
然后,ITextRenderer在第4行创建PDF布局,并把它的OutputStream中的第5行
如果JSF的创建将采取什么样的很长一段时间? 上面的代码将堆栈在第3行,直到服务器创建整个JSF。 因此,如果我想将第1-6行的代码放入servlet中,它可以阻止HTTP响应,并可能导致超时问题。 我想Flying Saucer将开始创建输出流HTTP响应,而不必等到创建完整的原始JSF。 做什么是最好的方法? 飞碟是否有任何API支持? 任何帮助将不胜感激。