获取“JRException:没有为语言设置报告编译器”错误。怎么解决?

时间:2016-07-01 07:51:47

标签: java mysql sql oracle jasper-reports

以下是我的代码的一部分。当我使用Mysql作为我的数据库时,所有工作正常,包括JasperReports,但是一旦我改变了与Oracle数据库的连接(12c),并且在将参数传递给JasperReports的报告时出现此错误。

<% 
String datef =request.getParameter("datef");
String datet =request.getParameter("datet");


try {
String connectionURL = "jdbc:oracle:thin:@localhost:1522:test"; 
Connection conn = null; 
Class.forName("oracle.jdbc.OracleDriver").newInstance();
conn=DriverManager.getConnection(connectionURL,"system","1234");

String jrxmlFile ="C:/report/report1.jrxml";
InputStream input = new FileInputStream(new File(jrxmlFile));
JasperDesign jasperDesign = JRXmlLoader.load(input);

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

System.out.println("Creating JasperPrint Object");
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("datef",datef);
map.put("datet",datet);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,map,conn);
byte bytes[] = new byte[10000]; 
JRPdfExporter exporter = new JRPdfExporter();
ByteArrayOutputStream PDFStream = new ByteArrayOutputStream(); 
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, PDFStream); 
exporter.exportReport(); 
bytes = PDFStream.toByteArray(); 
response.setContentType("application/pdf"); 
response.setContentLength(bytes.length);    
PDFStream.close();  

OutputStream outputStream = response.getOutputStream(); 
outputStream.write(bytes, 0, bytes.length); 
outputStream.flush(); 
outputStream.close(); 
}catch(Exception ex){
   out.println("Error"+ex);
} 
%>

我的错误讯息:

Error foundnet.sf.jasperreports.engine.JRException: No report compiler set for language : null

注意我有两套 JasperReports 的报告:

1)使用MySql作为数据库进行连接

2)使用Oracle作为数据库进行连接

两者都可以通过手动输入参数来预览Studion(iReport)

这是我的报告查询:

SELECT
 CI_ID,
 Status,
 CI_name,
 Serial_num,
 Manufacturer,
 model,
 warranty_end,
 refresh_date,
 core_id,
 departm
FROM
 laptop
WHERE
 refresh_date >= $P{datef}
 and refresh_date <= $P{datet}
ORDER BY
 refresh_date ASC 

我在lib文件夹中导入所有相关的.jar,对于oracle我添加(ojdbc7),并且Connect端口是1522,SID名称是“test”,可以使用Oracle SQL Developer连接,密码和用户名是正确的。我在这里遗漏了什么,请让我知道谢谢。

更新:

我设置了语言,现在我收到了这个错误:

net.sf.jasperreports.engine.JRException: Error executing SQL statement for : report2

0 个答案:

没有答案