RuntimeException

neela

Bekanntes Mitglied
folgende Code Zeilen werfen auf einmal eine Exception ohne das ich da was geändert habe
Java:
try {
			Document document = new Document();
			 // ByteArrayOutputStream erzeugen
			 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
			 PdfWriter.getInstance(document, baos);
			 
			String file = (Datenbank.template("Sachdaten")).toString();
			jasperReport = JasperCompileManager.compileReport(file);
			jPrint = JasperFillManager.fillReport(jasperReport, parameter,
					new JREmptyDataSource());

			// Pdf wird in Hauptspeicher geschrieben
		pdfKompl_byte = JasperExportManager.exportReportToPdf(jPrint);
			
			
			HttpServletResponse response = Datenbank.getResponse();

			document.close();
			response.setContentType("application/pdf");
			response.setContentLength(baos.size());
			// Pdf wird im Browser angezeigt
			ServletOutputStream servletOutputStream = response
					.getOutputStream();
		baos.writeTo(servletOutputStream);
			servletOutputStream.write(pdfKompl_byte, 0, pdfKompl_byte.length);
			servletOutputStream.flush();

java.lang.RuntimeException: The document is not open.
at com.lowagie.text.pdf.PdfWriter.getDirectContent(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
at com.lowagie.text.Document.close(Unknown Source)
at fachlogik.Pdf.creat_pdf(Pdf.java:173)
at fachlogik.Xml.xml_auslesen(Xml.java:230)
at nutzerschnittstelle.Start.doGet(Start.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

Wisst ihr vlt wo sich der Fehlerteufel eingeschlichen hat
 

neela

Bekanntes Mitglied
nun habe ich in code document.open(); eingefügt mit dem resultat das mir nun gar nix angeszeigt wird. Mein Browser bleibt somit leer.

Java:
try {
			Document document = new Document();
			 // ByteArrayOutputStream erzeugen
			 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
			 PdfWriter.getInstance(document, baos);
			 document.open();
			String file = (Datenbank.template("Sachdaten")).toString();
			jasperReport = JasperCompileManager.compileReport(file);
			jPrint = JasperFillManager.fillReport(jasperReport, parameter,
					new JREmptyDataSource());

			// Pdf wird in Hauptspeicher geschrieben
		pdfKompl_byte = JasperExportManager.exportReportToPdf(jPrint);
			
			
			HttpServletResponse response = Datenbank.getResponse();

			document.close();
			response.setContentType("application/pdf");
			response.setContentLength(baos.size());
			// Pdf wird im Browser angezeigt
			ServletOutputStream servletOutputStream = response
					.getOutputStream();
		baos.writeTo(servletOutputStream);
			servletOutputStream.write(pdfKompl_byte, 0, pdfKompl_byte.length);
			servletOutputStream.flush();

was hab ich nur falsch gemacht ???:L
 

neela

Bekanntes Mitglied
mein fehler war das ich itext und jasperreport zusammen gehaun habe

Java:
String file = (Datenbank.template("Sachdaten")).toString();
			jasperReport = JasperCompileManager.compileReport(file);
			jPrint = JasperFillManager.fillReport(jasperReport, parameter,
					new JREmptyDataSource());

			// Pdf wird in Hauptspeicher geschrieben
		pdfKompl_byte = JasperExportManager.exportReportToPdf(jPrint);
			
			
			HttpServletResponse response = Datenbank.getResponse();

			response.setContentType("application/pdf");
			response.setContentLength(pdfKompl_byte.length);
			// Pdf wird im Browser angezeigt
			ServletOutputStream servletOutputStream = response
					.getOutputStream();
			servletOutputStream.write(pdfKompl_byte, 0, pdfKompl_byte.length);
			servletOutputStream.flush();
			servletOutputStream.close();

mehr is nicht notwendig
 

Ähnliche Java Themen


Oben