Jump to content
We've recently updated our Privacy Statement, available here ×

SubReports jasper does not shown up from jar files


youssefboukir5

Recommended Posts

when i run my jar file i get this error : net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error opening input stream from URL: file:/C:/Users/DEV/OneDrive/Bureau/KPIXO-APP/backend-Kpixo-Siannna/target/kpixo-0.0.1-SNAPSHOT.war!/WEB-INF/classes!/jasperReport/informationsqlt/8DInformation.jasper.public byte[] generateReport(Long id) throws FileNotFoundException, JRException {    JasperPrint empReport = new JasperPrint();    try {        CLassHuitD huitD = getHuitDById(id);        Map<String, Object> parameters = new HashMap<>();        ArrayList<Map<String, Object>> informationQeneral = new ArrayList<Map<String, Object>>();        if(huitD.getClass().getName().equalsIgnoreCase("com.absixo.kpixo.entities.analyseHuitD.QualiteHuitD")){            log.info("entred 1");            getInformationQLT(huitD,informationQeneral);            parameters.put("NameReportInformation", getClass().getResource("/jasperReport/informationsqlt/").getPath());            parameters.put("type8D", "Qualité");        }else{            log.info("entred 2");            getInformationHSE(huitD,informationQeneral);            parameters.put("type8D", "HSE");            parameters.put("NameReportInformation",  getClass().getResource("/jasperReport/informationshse/").getPath());        }        log.info("entred 3");        //Add general information of 8D to the list        DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");        parameters.put("title", huitD.getTitre());        if(huitD.getTypeReclamation().equals(true)){            parameters.put("typeReclamation", "Interne");        }else{            parameters.put("typeReclamation", "Externe");        }        parameters.put("zoneConcerne", huitD.getZoneConcerne()==null?"":huitD.getZoneConcerne().getNom());        parameters.put("nomClient", huitD.getNomClient()==null ? "" : huitD.getNomClient());        parameters.put("dateOuverture",dateFormat.format(Date.from(huitD.getDateOuverture().atStartOfDay(defaultZoneId).toInstant())));        if(huitD.getEquipeHuitD()!=null){            parameters.put("responsable", huitD.getEquipeHuitD().getResponsable().getFullName());        }        log.info("entred 3");        //Add problem to the list        if(huitD.getProbleme()!=null){            parameters.put("qui", huitD.getProbleme().getQui());            parameters.put("comment", huitD.getProbleme().getComment());            parameters.put("quoi", huitD.getProbleme().getQuoi());            parameters.put("quand", Date.from(huitD.getProbleme().getQuand().atZone(ZoneId.systemDefault()).toInstant()));            parameters.put("prblmOu", huitD.getProbleme().getLieu());            parameters.put("zone", huitD.getProbleme().getZone().getNom());        }        log.info("entred 4");        parameters.put("SUBREPORT3", getClass().getResource("/jasperReport/").getPath());        parameters.put("iconsPath", getClass().getResource("/jasperReport/icons/").getPath());        log.info("entred 41");        //Get 8D Team        ArrayList<Map<String, Object>> d1Team = new ArrayList<Map<String, Object>>();        if(huitD.getEquipeHuitD()!=null){            get8DTeam(huitD,d1Team);        }        log.info("entred 42");        // Get data of closing 8D        ArrayList<Map<String, Object>> d8cmtList = new ArrayList<Map<String, Object>>();        if(huitD.getCloture()!=null){            getHuitDCloture(huitD.getCloture(),parameters,d8cmtList);        }        log.info("entred 5");        //initialization of the ishikawa list        ArrayList<Map<String, Object>> ishikawaList1 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> ishikawaList2 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> ishikawaList3 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> ishikawaList4 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> ishikawaList5 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> ishikawaList6 = new ArrayList<Map<String, Object>>();        //initialization of the prq list        ArrayList<Map<String, Object>> prq1List = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> prq2List = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> prq3List = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> prq4List = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> prq5List = new ArrayList<Map<String, Object>>();        if(huitD.getCauseRacine()!=null){            if(huitD.getCauseRacine().getIshikawas()!=null){                getIshikawaCause(ishikawaList1,ishikawaList2,ishikawaList3,ishikawaList4,ishikawaList5,ishikawaList6,huitD.getCauseRacine().getIshikawas());            }            getCinqPCause(prq1List,prq2List,prq3List, prq4List,prq5List,huitD.getCauseRacine().getCinqPs());        }        log.info("entred 6");        //Get list action securise        List<PlanActionView> listActionSecurise = actionRepository.fetchActionsByTypeAndIdHuitd(id, "Securisation8D");        //Get list action corrective        List<PlanActionView> listActionCorrective = actionRepository.fetchActionsByTypeAndIdHuitd(id, "Corrective8D");        //Get list action preventive        List<PlanActionView> listActionPreventive = actionRepository.fetchActionsByTypeAndIdHuitd(id, "Preventive8D");        ArrayList<Map<String, Object>> listD3 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> listD1 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> listD5 = new ArrayList<Map<String, Object>>();        ArrayList<Map<String, Object>> listD7 = new ArrayList<Map<String, Object>>();        List<reportClass> dtReports = new ArrayList<reportClass>();        //preparing list of action securise        listD3 = getDataD3(listActionSecurise);        //preparing list of action securise        listD5 = getDataD5(listActionCorrective);        //preparing list of action preventive        listD7 = getDataD7(listActionPreventive);        log.info("entred 7");        // add list into main list        dtReports.add(new reportClass());        dtReports.get(0).setD3List(listD3);        dtReports.get(0).setD5List(listD5);        dtReports.get(0).setD7List(listD7);        dtReports.get(0).setD8cmtList(d8cmtList);        dtReports.get(0).setD1Team(d1Team);        dtReports.get(0).setIshikawaList1(ishikawaList1);        dtReports.get(0).setIshikawaList2(ishikawaList2);        dtReports.get(0).setIshikawaList3(ishikawaList3);        dtReports.get(0).setIshikawaList4(ishikawaList4);        dtReports.get(0).setIshikawaList5(ishikawaList5);        dtReports.get(0).setIshikawaList6(ishikawaList6);        dtReports.get(0).setPrq1List(prq1List);        dtReports.get(0).setPrq2List(prq2List);        dtReports.get(0).setPrq3List(prq3List);        dtReports.get(0).setPrq4List(prq4List);        dtReports.get(0).setPrq5List(prq5List);        dtReports.get(0).setInformationQeneral(informationQeneral);        log.info("entred 6");        //String urlReport = "classpath:jasperreport/report8D.jrxml";        //URL url = getClass().getResource("/jasperReport/report8D.jrxml");        //String urlReport = url.getPath();        InputStream reportStream = getClass().getResourceAsStream("/jasperReport/report8D.jrxml");        final JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(dtReports);        empReport =                JasperFillManager.fillReport                        (                                JasperCompileManager.compileReport(reportStream) // path of the jasper report                                , parameters // dynamic parameters                                , dataSource                        );    }catch (Exception ex){        log.error("Error  :: "+ex);    }    return JasperExportManager.exportReportToPdf(empReport);}

 

jasper code : 

<parameter name="NameReportInformation" class="java.lang.String" isForPrompting="false"/>

 

                <subreport>

                    <reportElement x="2" y="114" width="551" height="81" uuid="053b8509-69e8-44ce-9031-abfa53fdc837"/>

                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{informationQeneral})]]></dataSourceExpression>

                    <subreportExpression><![CDATA[$P{NameReportInformation}+"8DInformation.jasper"]]></subreportExpression>

                </subreport>

 

 

 

 

Link to comment
Share on other sites

  • 2 months later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...