Java Wildfly:ManagedExecutorService和PipedOutputStream
我需要有关ManagedExecutorService的帮助(我正在使用Wildfly) 我的JSF Bean(控制器)中有这样一个方法:Java Wildfly:ManagedExecutorService和PipedOutputStream,java,wildfly,Java,Wildfly,我需要有关ManagedExecutorService的帮助(我正在使用Wildfly) 我的JSF Bean(控制器)中有这样一个方法: public void doSendEmail() { myEjbean.sendOffer(offer); } 这将调用我的EJB函数: 我现在想创建一个PDF: PipedOutputStream createPdfWithAttachments(DocumentDesigner documentDesigner, String fil
public void doSendEmail() {
myEjbean.sendOffer(offer);
}
这将调用我的EJB函数:
我现在想创建一个PDF:
PipedOutputStream createPdfWithAttachments(DocumentDesigner documentDesigner, String fileName) {
List<InputStream> inputStreamList = new ArrayList<InputStream>();
// 1) Add InputStream (which should be added before the document from 2)
// // Diese hinzufügen bei: inputStreamList.add(inputStream);
// 2) Create Document (from a URL)
PipedOutputStream createPdf(PipedOutputStream os, DocumentDesigner documentDesigner, boolean preview)
inputStreamList.add(isDocument);
// 3) Add InputStream (Stream which should be attach after the document)
// Diese hinzufügen bei: inputStreamList.add(inputStream);
// 4) Merge PDF
PipedOutputStream is = pdfGenerationHelperService.mergePdf(inputStreamList, fileName);
return is;
}
我现在正在苦苦思索什么时候该用这个:
managedExecutorService.submit(() -> {
try {
doSomething();
}
catch (Exception e) {}
return null;
});
似乎在createPdf-函数中,我需要这个managedExecutorService.submit(()->{…}
否则它将无法工作。下面是此函数的代码:
/**
* Create PDF
*
* @throws IOException
*/
public PipedOutputStream createPdf(PipedOutputStream os, DocumentDesigner documentDesigner, boolean preview)
throws IOException {
managedExecutorService.submit(() -> {
try {
String url = generateUrl(documentDesigner, preview);
PdfRendererBuilder builder = new PdfRendererBuilder();
XRLog.setLevel(XRLog.CSS_PARSE, Level.SEVERE);
XRLog.setLoggingEnabled(false);
// builder.withUri(new URL(url).toString());
Document doc = html5ParseDocument(url, 0);
builder.withW3cDocument(doc, url);
builder.toStream(os);
builder.run();
os.close();
return os;
}
catch (Exception e) {
LOGGER.error(ExceptionUtils.getFullStackTrace(e));
}
return null;
});
return null;
}
我想知道何时必须使用managedExecutorService.submit(()
->),是否可以使用嵌套的managedExecutorService.submit(()
总的来说,我在这里要做的是:
/**
* Create PDF
*
* @throws IOException
*/
public PipedOutputStream createPdf(PipedOutputStream os, DocumentDesigner documentDesigner, boolean preview)
throws IOException {
managedExecutorService.submit(() -> {
try {
String url = generateUrl(documentDesigner, preview);
PdfRendererBuilder builder = new PdfRendererBuilder();
XRLog.setLevel(XRLog.CSS_PARSE, Level.SEVERE);
XRLog.setLoggingEnabled(false);
// builder.withUri(new URL(url).toString());
Document doc = html5ParseDocument(url, 0);
builder.withW3cDocument(doc, url);
builder.toStream(os);
builder.run();
os.close();
return os;
}
catch (Exception e) {
LOGGER.error(ExceptionUtils.getFullStackTrace(e));
}
return null;
});
return null;
}