Bonjour je suis débutant en JSF et j'ai écris un code pour créer un rapport avec Jasper Report. je compile mon état sans problème mais j'arrive pas a l'afficher dans le navigateur. ce qui m’inquiète c'est que mon code ne m'affiche aucune erreur. En passant mon projet est un projet maven. Je pense plus pour un problème de configuration ou bien d'un jar manquant. voici mon code dans mon manageBean:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public void initReport() throws JRException {
String reportPathjrxml = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/Report/pays.jrxml");
String reportPathjasper = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/Report/pays.jasper");
listPays=paysDao.findAll();
beanCollectionDataSource = new JRBeanCollectionDataSource(listPays);
JasperCompileManager.compileReportToFile(reportPathjrxml, reportPathjasper);
// JasperDesign jasperDesign = JRXmlLoader.load(reportPathjrxml);
// jasperReport = JasperCompileManager.compileReport(jasperDesign);
// jasperPrint = JasperFillManager.fillReport(reportPathjasper, new HashMap(), beanCollectionDataSource);
}
public void print() {
try {
initReport();
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
InputStream reportStream = facesContext.getExternalContext().getResourceAsStream("/Report/pays.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
facesContext.responseComplete();
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream,new HashMap(), beanCollectionDataSource);
servletOutputStream.flush();
servletOutputStream.close();
} catch (IOException e) {
System.out.print(e.getMessage());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} |
Dans ma page JSF j'ai ceci :
<p:commandButton icon= "ui-icon-print" value="#{msg['bouton.imprimer']}" action="#{payscontroller.print}" />
C'est d'autant plus inquietant que lorsque je travail sur un simple projet (sans maven) je parviens a afficher mon etat pdf. Bien vouloir m'aider svp.
Partager