简体   繁体   中英

How to solve ExceptionConverter in itextpdf-5.3.0.jar?

I am trying to create a PDF from HTML content. To do that, I am using itextpdf-5.3.0.jar , which is a Java-based (using Struts 2) web project. I am getting the following error, and I do not know how to solve it. Please help me.

<%@page import="com.sun.org.apache.bcel.internal.generic.ArrayType"%>
<%@page import="com.sun.xml.internal.ws.api.message.Message"%>
<%@page import="com.sun.xml.internal.fastinfoset.util.StringArray"%>
<%@
page import="javax.servlet.*, 
javax.servlet.http.*,
java.io.*,
java.util.*,
com.itextpdf.awt.*,
com.itextpdf.text.*,com.itextpdf.text.pdf.*,com.itextpdf.text.html.simpleparser.HTMLWorker,
com.itextpdf.tool.xml.XMLWorkerHelper,
com.itextpdf.tool.xml.XMLWorker,
com.itextpdf.tool.xml.XMLWorkerHelper,
com.itextpdf.tool.xml.html.Tags,
com.itextpdf.tool.xml.parser.XMLParser
,com.itextpdf.tool.xml.pipeline.css.CSSResolver
,com.itextpdf.tool.xml.pipeline.css.CssResolverPipeline
,com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline
,com.itextpdf.tool.xml.pipeline.html.AbstractImageProvider
,com.itextpdf.tool.xml.pipeline.html.HtmlPipeline
,com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext
,com.itextpdf.tool.xml.pipeline.html.LinkProvider"
%>
<SCRIPT type="text/javascript">
alert("Welcome 2 allTest.jsp");
</script>
<%

response.setContentType("application/pdf");
Document document = new Document(PageSize.A4, 40, 40, 30, 30);
{
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ByteArrayOutputStream ms=new ByteArrayOutputStream();
PdfWriter pdfWriter = PdfWriter.getInstance(document,response.getOutputStream());

document.open();
HTMLWorker htmlWorker = new HTMLWorker(document);



String pdfCon = request.getParameter("pdfCon");
String [] tokens = pdfCon.split("---");

for(int i=0; i < (tokens.length); i++) {

try{
    htmlWorker.parse(new StringReader(tokens[i]));

    }catch(Exception e)
    {
        System.out.println("Exception: "+e);
    }

    document.newPage();

}
document.close(); 
}
%>

And I am getting this error:

ExceptionConverter: java.net.ConnectException: Connection refused: connect
ExceptionConverter: com.itextpdf.text.DocumentException: java.lang.ClassCastException:          com.itextpdf.text.html.simpleparser.TableWrapper cannot 
be cast to com.itextpdf.text.Meta

The right way to do this is described in this answer .

Once you'll have moved all your code in a proper Action returning a Stream result type, you will eliminate the response.getOutputStream (you will use a ByteArrayOutputStream instead), that is one of the few things that differ between your code and mine (that works).

If the error will still be there, at least you will have (differently from Scriptlets) the line number to debug the problem or ask targeted help here.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM