2004 IR Help Posted September 2, 2006 Share Posted September 2, 2006 By: PhotoGrey - photogrey iReport/Java issue 2004-07-24 13:12 Hello, I am trying to create a pdf file using Java. However, I keep getting this error: Error loading object from File I believe that it is complaining about my subReport that I have embedded in the main report, but I never had this problem when testing in iReports. Do I have to specify the subreport within the Java code, or is there a property that I have to tweek in iReports? Any help is appreciated. PhotoGrey By: PhotoGrey - photogrey RE: iReport/Java issue 2004-07-26 12:46 Sorry about the lack of information on my problem, here's the java code for the strut action... PrintWriter out = response.getWriter(); conMan = DBConnectionManager.getInstance(); dbConn = conMan.getConnection("poolname"); Map parameters = new HashMap(); parameters.put("CompanyID", CompanyID); JasperPrint jrPrint = JasperManager.fillReport("/www/tomcat41/webapps/cst1833/richmondProject/reports/" + report, parameters, dbConn); printReport"); JasperManager.printReportToPdfFile(jrPrint, "/www/tomcat41/webapps/cst1833/richmondProject/Bordereau.pdf"); request.setAttribute("message", "Report created"); nextPage = mapping.findForward("success"); The main report takes a parameter from java (companyID) and the sub report that I have in the main report takes a parameter from the main report. As far as I can tell, the error is happening on trying to load the sub report. btw, I'm running this off of a Lunix box. Thanks for any help. PhotoGrey By: Juan Ara - fi2net@Spain - laureke RE: iReport/Java issue 2004-07-27 10:01 First of all, I'll recomend u to have a action dispatcher for printing reports... I mean, look at new JasperReports 0.6 and think about changing 50+ actions to the new package names or just an actionDispatcher for it... ;) Second, at that servlet (dispatcher) I've something like this: private static boolean print(JasperPrint jasperPrint, HttpServletResponse response, String fileName) { ByteArrayOutputStream baos=new ByteArrayOutputStream(); ServletOutputStream out=null; JasperPrintManager myJPM = new JasperPrintManager(); try { myJPM.printReportToPdfStream(jasperPrint,baos); response.reset(); response.setContentType("application/pdf"); response.setContentLength(baos.size()); response.setHeader("Content-disposition","inline; filename=listado.pdf" ); if (fileName!=null) { response.setHeader("Content-disposition","attachment; filename="+fileName); } out=response.getOutputStream(); baos.writeTo(out); out.flush(); baos.close(); } catch (Exception e) { try {baos.close();} catch (IOException ex) {;} return false; } return true; } And then, each "dispatch" has something like this: public ActionForward reportprint1 ( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String embarque=request.getParameter("embarque"); if (embarque==null||embarque.equals("")) throw new es.sgv.exceptions.ImprimirException("indicacionesS4Embarque: Falta parametro de impresion"); embarque=embarque.toUpperCase(); Connection trans= singleTonPool.getConnection(); DSFactory temp=new DSFactory(); JRRewindableDataSource ds=temp.getDs1(trans,embarque); JRRewindableDataSource ds1=temp.getDs2(trans,embarque); JRRewindableDataSource ds2=temp.getDs3(trans,embarque); if (!ds.next()) return mapping.findForward(noData); ds.moveFirst(); String sub1=getServlet().getServletContext().getRealPath("/jasper/subreport1.jasper"); String sub2=getServlet().getServletContext().getRealPath("/jasper/subreport2.jasper"); Map parameters = new HashMap(); parameters.put("subreport1",sub1); parameters.put("subreport2",sub2); parameters.put("subreport1ds",ds1); parameters.put("subreport2ds",ds2); JasperPrint jasperPrint=JasperManager.fillReport(getServlet().getServletContext().getRealPath("/jasper/report.jasper"),parameters,ds); boolean result=imprimir(jasperPrint,response,null); //no filename //If any error, throw a mapped (struts-config) exception if (!result) throw new es.sgv.exceptions.ImprimirException("Report Error: Printing Error"); return null; } //action end By: Juan Ara - fi2net@Spain - laureke RE: iReport/Java issue 2004-07-27 10:03 Wh000ps! boolean result=imprimir(jasperPrint,response,null); //no filename should be boolean result=print(jasperPrint,response,null); //no filename (A mistake when translating my servlet ;) ) By: superzech - superzech RE: iReport/Java issue 2004-07-29 00:51 hie, when i try to run JasperManager.fillReport(XXX), an error saying - Cannot resolve symbol:Method fillReport(java.lang.String,java.util.HashMap.. may i know whats the problem? thanks. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now