Java 如何避免;“设备上没有剩余空间”;错误,由于crystal reporty tmp日志文件

Java 如何避免;“设备上没有剩余空间”;错误,由于crystal reporty tmp日志文件,java,crystal-reports-2008,Java,Crystal Reports 2008,我们遇到了一个与crystal报表引擎的“.crtmp”临时文件相关的严重问题。 事实上,这些日志非常庞大,而且没有清理,导致了这个技术问题:“设备上没有剩余空间” 下面的代码示例是我们用于生成报告的代码: ReportClientDocument reportClientDoc = new ReportClientDocument(); try { String chemin = (String) getSession().getAttribute(

我们遇到了一个与crystal报表引擎的“.crtmp”临时文件相关的严重问题。 事实上,这些日志非常庞大,而且没有清理,导致了这个技术问题:“设备上没有剩余空间”

下面的代码示例是我们用于生成报告的代码:

ReportClientDocument reportClientDoc = new ReportClientDocument();
    try {
        String chemin = (String) getSession().getAttribute(
                Constants.PATH_ETATS);
        reportClientDoc.setLocale(java.util.Locale.FRANCE);
        reportClientDoc.open(chemin + etat, 0);
        User u = (User) getSession().getAttribute(Constants.USER_KEY_BCT);
        Map<String, String> paramsDB = (Map<String, String>) getSession()
                .getAttribute(Constants.DB_PARAMS);
        params.put(Constants.PARAM_SCHEMA,
                paramsDB.get(Constants.TABLE_NAME_QUALIFIER));

        CRJavaHelper.switch_tables(reportClientDoc.getDatabaseController(),
                params, paramsDB);

        IStrings subreportNames = reportClientDoc.getSubreportController()
                .getSubreportNames();
        for (int i = 0; i < subreportNames.size(); i++) {
            ISubreportClientDocument subreportClientDoc = reportClientDoc
                    .getSubreportController().getSubreport(
                            subreportNames.getString(i));

            CRJavaHelper.switch_tables(
                    subreportClientDoc.getDatabaseController(), params,
                    paramsDB);
        }
        ParameterFieldController paramController = reportClientDoc
                .getDataDefController().getParameterFieldController();

        paramController = setReportParameter(paramController, paramsReport,
                reportClientDoc);
        paramController.setCurrentValue("", Constants.PARAM_SCHEMA,
                paramsDB.get(Constants.TABLE_NAME_QUALIFIER));

        if (format.equals("txt")) {
            ICharacterSeparatedValuesExportFormatOptions csvOptions = (ICharacterSeparatedValuesExportFormatOptions) reportClientDoc
                    .getSavedExportOptions(ReportExportFormat.characterSeparatedValues);
            csvOptions.setDelimiter("");
            ExportOptions exportOptions = new ExportOptions();
            exportOptions
                    .setExportFormatType(ReportExportFormat.characterSeparatedValues);
            exportOptions.setFormatOptions(csvOptions);

            InputStream txtFile = reportClientDoc
                    .getPrintOutputController().export(exportOptions);

            byte[] bytes = IOUtils.toByteArray(txtFile);

            String str = openFileToString(bytes);
            System.out.println(str);
            String strFinale = str.toString().replace("endofline", "\r");
            strFinale = strFinale.replaceAll("(?m)^\\s*$[\n\r]{1,}", "");

            System.out.println(strFinale);

            ByteArrayInputStream tmp = new ByteArrayInputStream(
                    strFinale.getBytes("UTF-8"));

            writeToBrowser(tmp, getResponse(), "text/csv",
                    etat.replace("rpt", "txt"));
        } else {

            writeToBrowser(byteArrayInputStream, getResponse(),
                    TypeExport.getValeurMime(format),
                    etat.replace("rpt", format));
        }

    } catch (Exception e) {
        throw new Exception(e);

    } finally {
        if (reportClientDoc != null) {

            reportClientDoc.close();

        }
    }
ReportClientDocument reportClientDoc=new ReportClientDocument();
试一试{
字符串chemin=(字符串)getSession().getAttribute(
常数。路径参数);
reportClientDoc.setLocale(java.util.Locale.FRANCE);
reportClientDoc.open(chemin+etat,0);
用户u=(用户)getSession().getAttribute(常量.User\u KEY\u BCT);
Map paramsDB=(Map)getSession()
.getAttribute(常量.DB_参数);
params.put(Constants.PARAM_模式,
paramsDB.get(Constants.TABLE_NAME_QUALIFIER));
CRJavaHelper.switch_表(reportClientDoc.getDatabaseController(),
params,paramsDB);
IStrings subreportNames=reportClientDoc.getSubreportController()
.getSubreportNames();
对于(int i=0;i
你能告诉我怎么修吗。
先谢谢你

是“没有剩余空间”还是“没有剩余空间”?添加一些存储?将日志移动到不同的卷?我们希望通过设置一些crystal report参数和/或从java程序调用方法(如果存在)来找到一个明确的解决方案。