Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jasper报告区域设置错误_Java_Internationalization_Jasper Reports_Resourcebundle - Fatal编程技术网

Java Jasper报告区域设置错误

Java Jasper报告区域设置错误,java,internationalization,jasper-reports,resourcebundle,Java,Internationalization,Jasper Reports,Resourcebundle,我正在使用iReport 5.0.1工具创建Jasper报告,我的报告已正确编译,但当我单击“预览”按钮时,它会抛出以下错误: 错误描述:  Filling report...  Locale: English (United States)  Time zone: Default Error filling print... Can't find bundle for base name Report_en_US, locale en_US java.util.MissingRe

我正在使用iReport 5.0.1工具创建Jasper报告,我的报告已正确编译,但当我单击“预览”按钮时,它会抛出以下错误:

错误描述:

 Filling report...
  Locale: English (United States)
  Time zone: Default
    Error filling print... Can't find bundle for base name Report_en_US, locale en_US 
java.util.MissingResourceException: Can't find bundle for base name Report_en_US, locale en_US  
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)      
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)      
at java.util.ResourceBundle.getBundle(ResourceBundle.java:952)      
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:660) 
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:598)     
at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:570)    
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:605)  
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1257)     
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)      
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841)     
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:88)     
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)    
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:569)   
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915)    
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:928)      
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  
Print not filled. Try to use an EmptyDataSource...
我正在使用以下java代码生成报告:

InputStream input = new FileInputStream(request.getRealPath(compiledTemplate)); 

        Map<String,Object> parameters = new HashMap<String,Object>();
        Locale locale = (Locale)request.getSession().getAttribute(GFDBConstants.WW_TRANS_I18N_LOCALE);
        System.out.println("locale is ******" +"" + locale);
        ResourceBundle rbundle = ResourceBundle.getBundle("Report", locale);
        parameters.put(JRParameter.REPORT_RESOURCE_BUNDLE, rbundle);
        System.out.println("Resource Bundle is ********" +rbundle);
        parameters.put(JRParameter.REPORT_LOCALE, locale);
        parameters.put("CONTEXT",request.getServletContext().getRealPath("/"));
        JasperPrint print = JasperFillManager.fillReport(input, parameters, jrBeanCollectionDataSource);        
        ByteArrayOutputStream outputByteStream = new ByteArrayOutputStream();

        JRCsvExporter csvExporter = new JRCsvExporter(); 
        csvExporter.setParameter(JRCsvExporterParameter.JASPER_PRINT, print); 
        csvExporter.setParameter(JRCsvExporterParameter.OUTPUT_STREAM, outputByteStream);
        System.out.println("After report generated successfully");
        csvExporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ","); 
        csvExporter.setParameter(JRCsvExporterParameter.RECORD_DELIMITER, "\n");         
        csvExporter.setParameter(JRCsvExporterParameter.IGNORE_PAGE_MARGINS, true); 
        System.out.println("\n successfully generated");
        csvExporter.exportReport(); 
        input.close();
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("application/csv");
        response.setHeader("Content-Disposition", "attachment;filename=" + csvFileName);

        ServletOutputStream outStream = response.getOutputStream();
        outStream.write(outputByteStream.toByteArray());
        outStream.flush();
        outStream.close();
InputStream input=newfileinputstream(request.getRealPath(compiledTemplate));
映射参数=新的HashMap();
Locale Locale=(Locale)request.getSession().getAttribute(GFDBConstants.WW_TRANS_I18N_Locale);
System.out.println(“区域设置为******+”“+locale”);
ResourceBundle rbundle=ResourceBundle.getBundle(“报告”,语言环境);
parameters.put(jrparmeter.REPORT\u RESOURCE\u BUNDLE,rbundle);
System.out.println(“资源包是********”+rbundle);
parameters.put(jrparmeter.REPORT\u LOCALE,LOCALE);
parameters.put(“CONTEXT”,request.getServletContext().getRealPath(“/”);
JasperPrint print=JasperFillManager.fillReport(输入、参数、jrBeanCollectionDataSource);
ByteArrayOutputStream输出ByTestStream=新建ByteArrayOutputStream();
JRCsvExporter csvExporter=新JRCsvExporter();
csvExporter.setParameter(JRCsvExporterParameter.JASPER_PRINT,PRINT);
csvExporter.setParameter(JRCsvExporterParameter.OUTPUT_STREAM,outputByteStream);
System.out.println(“成功生成报告后”);
setParameter(JRCsvExporterParameter.FIELD_分隔符,“,”);
csvExporter.setParameter(JRCsvExporterParameter.RECORD_分隔符,“\n”);
setParameter(JRCsvExporterParameter.IGNORE_PAGE_MARGINS,true);
System.out.println(“\n已成功生成”);
csvExporter.exportReport();
input.close();
HttpServletResponse=ServletActionContext.getResponse();
response.setContentType(“应用程序/csv”);
response.setHeader(“内容处置”、“附件;文件名=“+csvFileName”);
ServletOutputStream outStream=response.getOutputStream();
outStream.write(outputByteStream.toByteArray());
冲水;
exptream.close();

检查您是否已创建名为Report\u en\u US.properties的属性文件,如果您没有在同一位置创建Report\u en\u US.properties文件

第二个选项是加载不带本地的资源包。它将加载默认的资源包Report.properties

 ResourceBundle rbundle = ResourceBundle.getBundle("Report");

如果您不确定资源包加载路径,请尝试下面给定的代码

File file = new File("your resource file locaiton");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle rb = ResourceBundle.getBundle("Resource", Locale.getDefault(), loader);

嗯,
我期待着这方面的快速反应,这对我来说很紧急
-祝你好运!是的,我已在同一路径上创建了Report_en_US属性文件,我也尝试了第二种解决方案,但不起作用。您可以共享您的文件夹结构吗?属性文件的确切位置