2016-05-09 3 views
0

私はジャスパーレポートを持っています。サーブレットと同じパッケージに入れましたが、pdfファイルを生成する必要がありますが、コードは機能しません。エラーサーブレットJavaコードを使用してjasperレポートからpdfファイルを生成

public void print(String numBac , HttpServletRequest request, 
    HttpServletResponse response) { 
    try {   
     JasperDesign jasperDesign = JRXmlLoader 
       .load("fiche.jrxml"); 
     String sql = "SELECT * FROM etudiant " 
       + "INNER JOIN filiere ON etudiant.code_f=filiere.code_f " 
       + "INNER JOIN lieu_nais ON etudiant.code_lieu=lieu_nais.code_lieu " 
       + "INNER JOIN montant ON etudiant.code_m=montant.code_m WHERE bac='" 
       + numBac + "'"; 
     JRDesignQuery newQuery = new JRDesignQuery(); 
     newQuery.setText(sql); 
     jasperDesign.setQuery(newQuery); 
     JasperReport report = JasperCompileManager 
       .compileReport(jasperDesign); 
     //JasperPrint print = JasperFillManager.fillReport(report, null, cnx); 
     //JasperViewer.viewReport(print); 

     byte[] byteStream; 
     byteStream = JasperRunManager.runReportToPdf(report, null, cnx); 
     OutputStream outStream = response.getOutputStream(); 
     response.setHeader("Content-Sisposition", "inline,filename="+DOWNLOAD_FILE_NAME); 
     response.setContentType(FILE_TYPE); 
     response.setContentLength(byteStream.length); 
     outStream.write(byteStream, 0, byteStream.length); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

私は碧玉プレビューを生成したい場合でも、それはすべての

+0

私は、.jrxmlはリソースファイルだと思いますので、新しいソースフォルダーに展開してみましたか? – Darshit

+0

私はいくつかのチュートリアルを見ました。サーブレットがサーブレットをソースファイル – Java4Dev

答えて

0

まず(コメント内のコードを)アップ示されていない、あなたはここにスペルミスがあります。

response.setHeader("Content-Sisposition", "inline,filename="+DOWNLOAD_FILE_NAME); 

それは "Dispo Sisposition「の代わりに "sition:インライン " "の代わりに" 添付ファイル" また

response.setHeader("Content-Disposition", "inline,filename="+DOWNLOAD_FILE_NAME); 

は、使用してみてください":

response.setHeader("Content-Disposition", "attachment,filename="+DOWNLOAD_FILE_NAME); 

とフラッシュをしてOUTSTREAMを閉じる​​:

outStream.flush(); 
outStream.close(); 

・ホープ助けになる!

関連する問題