Я провожу ошибку загрузки файла CSS для внутренних porpuses, чтобы увидеть, справляется ли она с такой проблемой.Flying Saucer - не удалось поймать IOException получение потока закрыто
Код, который у меня есть, и когда он приходит к методу renderer.setDocument(), из класса ITextRenderer, он бросает непостижимую экслюмиссию, которую нам нужно поймать, и даже в этом случае она продолжает визуализировать .layout(), а затем, наконец, {} block.
private ITextRenderer renderPdfByRenderer(
final ITextRenderer renderer,
...
{
...
try {
...
org.w3c.dom.Document xhtmlContent = createDocument(contentReader);
...
renderer.setDocument(xhtmlContent, FacesContextHelper.getRequest().getRequestURL().toString());
...
renderer.layout();
....
} catch (final SAXException e) {
throw getExceptionOnRender(e);
} catch (final ParserConfigurationException e) {
throw getExceptionOnRender(e);
} catch (final DocumentException e) {
throw getExceptionOnRender(e);
} catch (IOException e) {
e.printStackTrace();
throw getExceptionOnRender(e);
} catch (final ServletException e) {
throw getExceptionOnRender(e);
}
finally{
...
}
}
[ERR] java.io.IOException: Поток закрыт [ERR] в java.io.BufferedInputStream.getInIfOpen (BufferedInputStream.java:134) [ERR] в java.io.BufferedInputStream. read1 (BufferedInputStream.java:256) [err] в java.io.BufferedInputStream.read (BufferedInputStream.java:317) [err] at sun.nio.cs.StreamDecoder.readBytes (StreamDecoder.java:264) [ err] at sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java:306) [err] at sun.nio.cs.StreamDecoder.read (StreamDecoder.java:158) [err] в java .io.InputStreamReader.read (InputStreamReader.java:167) [err] at org.xhtmlrenderer.css.parser.Lexer.zzRefill (Lexer.java:1634) [err] at org.xhtmlrenderer.css.parser.Lexer .yylex (Lexer.java:1865) [err] at org.xhtmlrenderer.css.parser.CSSParser.next (CSSParser.java:1807) [err] at org.xhtmlrenderer.css.parser.CSSParser.la (CSSParser .java: 1819) [err] at org.xhtmlrenderer.css.parser.CSSParser.stylesheet (CSSParser.java:159) [err] at org.xhtmlrenderer.css.parser.CSSParser.parseStylesheet (CSSParser.java:89) [err] at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse (StylesheetFactoryImpl.java:78) [err] at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse (StylesheetFactoryImpl.java:95) [err] at org.xhtmlrenderer.context.StylesheetFactoryImpl.getStylesheet (StylesheetFactoryImpl.java:174) [err] at org.xhtmlrenderer.context.StyleReference.readAndParseAll (StyleReference.java:123) [err] at org.xhtmlrenderer .context.StyleReference.setDocumentContext (StyleReference.java:111) [err] at org.xhtmlrenderer.pdf.ITextRenderer.setDocument (ITextRenderer.java:182) [err] at org.xhtmlrenderer.pdf.ITextRenderer.setDocument (ITextRenderer .java: 145) [err] at osplus.mcp.frontend.servlet.RendererFilter.renderPdfByRenderer (RendererFilter.java:750) [err] at osplus.mcp.frontend.servlet.RendererFilter.renderPdf (RendererFilter.java:697) [err] at osplus.mcp.frontend.servlet.RendererFilter.handleReport (RendererFilter.java:1265) [err] at osplus.mcp.frontend.servlet.RendererFilter.doFilter (RendererFilter.java:178) [err] at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter (FilterInstanceWrapper.java:194) [ err] at [внутренние классы]
Может кто-нибудь, пожалуйста, помогите мне понять, как я могу поймать это исключение?
спасибо.
С уважением
Привет, @ergonaut, благодарю вас за помощь. Дело в том, что наш код находится внутри блока кода catch try, но даже с этим и с вашим уловом код не попадает в блок catch, и я не знаю почему. В моем посте ниже я поставлю немного кода, который мы производим. –