Java itext,飞碟:xhtml到pdf ClassCastException

Java itext,飞碟:xhtml到pdf ClassCastException,java,itext,flying-saucer,Java,Itext,Flying Saucer,这是个例外 java.lang.ClassCastException:org.xhtmlrenderer.render.BlockBox不能强制转换为org.xhtmlrenderer.newtable.TableBox 这解决了这个问题。您可以将它放在src目录中,这样就不必重新构建jar 太好了。现在只请添加异常抛出的确切位置,您的问题是什么,预期输出是什么。。。你知道,标准的东西。它看起来像是XHTML中的数据错误。在越来越小的XHTML文件上运行上述代码,直到找到导致错误的XML。验证X

这是个例外

java.lang.ClassCastException:org.xhtmlrenderer.render.BlockBox不能强制转换为org.xhtmlrenderer.newtable.TableBox


这解决了这个问题。您可以将它放在src目录中,这样就不必重新构建jar

太好了。现在只请添加异常抛出的确切位置,您的问题是什么,预期输出是什么。。。你知道,标准的东西。它看起来像是XHTML中的数据错误。在越来越小的XHTML文件上运行上述代码,直到找到导致错误的XML。验证XHTML。
public void createPDF() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();
    HttpSession session = (HttpSession) externalContext.getSession(true);
    String url = "http://localhost:8080/comap/pages/admin/student.xhtml";
    try {
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument(url);
        renderer.layout();
        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
        response.reset();
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition","C://user//first.pdf");
        java.io.OutputStream browserStream = response.getOutputStream();
        renderer.createPDF(browserStream);
        browserStream.close();
        session.invalidate();
    } catch (Exception ex) {
    ex.printStackTrace();
    }

    facesContext.responseComplete();
}