Hi y'all! I've been unsuccessfuly trying to solve this problem in the past days and I can't seem to find a solution for it; I was hoping someone in the list would have some advice or tip.
Firstly a quick outline of the situation: BackEnd: Java/Hibernate AppServer: WebOrb (Java) FrontEnd: Flex 2 Reporter: Jasper Reports / Jasper4Flex The problem is this: When from the flex frontend a request is made to Jasper to generate a report through jasper4flex (i.e.: Flex->WebOrb->Java->Jasper) the Flex compiler throws an exception when compiling the report to SWF. The caught exception holds no additional description. On the other hand, if I don't use the Flex frontend or WebOrb and directly call the Java report generation method, it all works well and the SWF report is generated correctly. As an additional comment, when using the full app (Flex + WebOrb + Java + Jasper) i DO get it to work, buy only if y request jasper to export to PDF instead, not to SWF. If anyone has any insight on how to make this work, I'd really appreciate it. Here's some code, although it is my understanding that the error is thrown by the Flex compiler. FLEX CODE: report.mxml: <mx:Button x="296" y="65" label="Cliente" click="reporter.getReporteSujetos ();"/> ReportMan.as -- class ReportMan public function ReportMan (unLoader : SWFLoader) { remoteReporter = new RemoteObject ("GenericDestination"); remoteReporter.source = "test.TestReportFlex"; remoteReporter.addEventListener(FaultEvent.FAULT, RPCHANDLER_fault); remoteReporter.generarReporte.addEventListener(ResultEvent.RESULT, RPCHANDLER_generatReporte); loader = unLoader; } public function getReporteSujetos () : void { remoteReporter.generarReporte("reporte_sujeto"); } public function RPCHANDLER_generarReporte (resultado : ResultEvent) : void { loader.source = "reporte_sujeto"; } JAVA CODE: package ar.com.aufiero.lascanhas.test; import java.io.File; import java.util.HashMap; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.export.flex.JRSwfExporter; import ar.com.aufiero.lascanhas.reports.test.ReportTestSujeto; public class TestReportFlex { public static void generarReporte (String fileName) throws Exception { try { JasperDesign jasperDesign = JRXmlLoader.load ("C:\\Reporte\\"+fileName+".jrxml"); JasperReport report = JasperCompileManager.compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(report,new HashMap(), new JRBeanCollectionDataSource( ReportTestSujeto.createBeanCollection())); JRSwfExporter exporter = new JRSwfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, new File("C:\\weborb\\webapp\\lascanhas\\", jasperPrint.getName() + ".swf").getAbsolutePath()); exporter.exportReport(); } catch(Exception e) { //I know this is horrible, just testing. throw e; } } /* public static void main(String[] args) { try { TestReportFlex.generarReporte("reporte_sujeto"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }*/ } Thanks in advace! Guido.