以下是我的代码的一部分。当我使用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