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