0

JasperReportsを使用していて、さまざまな言語でレポートを生成したいのですが、問題が発生しました。

そしてこれは私のコードです

public void initQueryReport() throws JRException, ParseException {
    try {
        Map param = new HashMap();
        param.put("DATE", date2);
        fill1 = JasperFillManager.fillReport(
                "E:\\jasper reports\\employees.jasper", param, connection);
    } catch (Exception e) {
        System.out.println();
    }
}

ServletResponse respnce;
HttpServletResponse respons;

public void PDFQuery(ActionEvent event) throws JRException, IOException, ParseException {
    try {
        initQueryReport();
        respnce = (ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        respons = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        respons.setContentType("application/pdf");
        respons.setHeader("Content-Disposition", "inline");
        respons.setContentType("application/pdf");
        ServletOutputStream out = respnce.getOutputStream();
        JRPdfExporter pdf = new JRPdfExporter();
        pdf.setParameter(JRExporterParameter.JASPER_PRINT, fill1);
        pdf.setParameter(JRExporterParameter.OUTPUT_STREAM, out);

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

ローカリゼーションdemo.prpertiesという名前のプロパティファイルを作成し、使用する言語で必要なテキストを含め、このファイルをsrcフォルダーに配置しました。

アプリケーションを実行し、レポートを生成するリンクをクリックすると、次の例外が発生します。

net.sf.jasperreports.engine.JRException: No input source supplied to the exporter

アプリケーションをデバッグモードで実行すると、次の例外の詳細が表示されることに注意してください。

java.util.missingresourceexception can't find bundle for base name locale en_us

この問題を解決するのを手伝ってください。そしてthxたくさん

4

2 に答える 2

1

リソース バンドル プロパティを .jrxml ファイルに設定したことは確かですか? java ファイルに設定していないようです。

Jaspersoft Studio を使用している場合: Jaspersoft Studio で、アウトライン内のレポート名をクリックし、プロパティ ビューからメニュー [レポート]を選択し、サブメニューの [データセット] の下で、リソース バンドル (localizationdemo) のプロパティがあるかどうかを確認します。適切なプロパティ ファイルに設定されています。

ソース ビューで確認することもできます。ここでは、次のようになっている必要があります。

<jasperReport /*****/ resourceBundle="localizationdemo" /****/>

詳細情報: http://www.tutorialspoint.com/jasper_reports/jasper_Internationalization.htm

于 2014-05-09T17:14:49.680 に答える
0

Springフレームワークを使用していますか?spring.xml でResourceBundleViewResolverを使用している場合に発生する可能性があります。basename プロパティ値としてパスlocalizationdemo.propertiesを配置する必要があります。spring.xml で次のコードを見てください。

class="org.springframework.web.servlet.view.ResourceBundleViewResolver"

property name="basename" value="config/jasperreports-views" 

私の場合、Spring 3.0を使用しました

于 2014-04-02T02:14:16.617 に答える