itext, летающая тарелка: xhtml в pdf ClassCastException

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();
}

вот исключение..

java.lang.ClassCastException: org.xhtmlrenderer.render.BlockBox нельзя преобразовать в org.xhtmlrenderer.newtable.TableBox


person suleman bader    schedule 13.05.2015    source источник
comment
Здорово. Теперь только, пожалуйста, добавьте, где именно генерируется исключение, каков ваш вопрос, каков ожидаемый результат... вы знаете, стандартные вещи.   -  person CptBartender    schedule 15.05.2015
comment
Похоже на ошибку данных в XHTML. Запускайте приведенный выше код на все более мелких файлах XHTML, пока не обнаружите, какой XML вызвал ошибку. Подтвердите XHTML.   -  person Joop Eggen    schedule 15.05.2015


Ответы (1)


Эта фиксация устранила проблему. Вы можете загрузите класс и поместите его в свой каталог src, чтобы вам не пришлось пересобирать банку.

person asmmahmud    schedule 26.05.2019