0

JRでPDF請求書を作成しています。私のローカルマシン(Linux ubuntu)では完全に動作します:

FacesContext fc = FacesContext.getCurrentInstance();
        ExternalContext ec = fc.getExternalContext();
        String templateAbsolutePath = ec.getRealPath(templateRelativePath);

        JasperReport jasperReport;
        try {
            jasperReport = JasperCompileManager.compileReport(templateAbsolutePath);        
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, getParametriFattura(fattura), datasource );

            JasperExportManager.exportReportToPdfStream(jasperPrint, ec.getResponseOutputStream());

        } catch (JRException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        fc.responseComplete();  

ただし、戦争をステージング サーバー (linux ubuntu) に展開すると、次のように表示されます。

ここに画像の説明を入力

些細な問題だと思いますが、どこから始めればよいでしょうか。

構成、システムの詳細などは意図的に省略しました...何が役立つかわからないためです。

4

1 に答える 1

2

(X)HTML ファイルではなく、PDF ファイルであることを Web ブラウザに明示的に伝える必要があります。

ec.setResponseContentType("application/pdf");

注: これは、応答本文にビットが書き込まれる前に設定する必要があります。

于 2013-01-08T17:29:17.953 に答える