【发布时间】:2015-11-19 22:14:25
【问题描述】:
我正在使用;
- 雄猫 8
- Jasper iReport 5.6 也尝试过 Jasper Studio 6.1
- Tomcat/lib/jasperreports-6.1.1
- Tomcat/lib/mysql-connector-java-5.1.34-bin
- Tomcat/lib/commons-beanutils-1.9.0.jar
- Tomcat/lib/commons-collections-3.2.1.jar
- Tomcat/lib/commons-digester-2.1.jar
- Tomcat/lib/commons-logging-1.1.1.jar
- Tomcat/lib/groovy-all-2.4.3.jar
- itext-2.1.7.js3.jar
我已尝试在网络服务器中显示报告;
<%@ page import="java.io.*"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.DriverManager"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>Hello World!</h2>
<%
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "root", "root");
} catch (Exception ex) {
ex.printStackTrace();
}
File reportFile = new File(application.getRealPath("report.jasper"));
Map parameters = new HashMap();
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream outStream = response.getOutputStream();
outStream.write(bytes, 0, bytes.length);
outStream.flush();
outStream.close();
%>
</body>
</html>
它在页面上给我一个附加错误(jsp和报告文件在同一文件夹中)
任何想法和建议都非常受欢迎。
我已按照this tutorial
谢谢,
苏朋
【问题讨论】:
-
你的 realPath 似乎有问题
-
test.jsp 和 report.jrxml 都在同一个文件夹中。你有什么建议吗?
-
在WEB-INF/classes中添加report.jasper并重新编译运行
-
没有WEB-INF/lib文件夹,我的目录结构如下;
C:\Program Files\Apache Software Foundation\Tomcat 8.0; webapps, lib,bin,conf,work, logs and temp.
我的 report.jrxml 路径 =C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\reports\report.jrxml -
也给出了同样的上述错误。谁能给出完整的工作代码?
标签: jsp tomcat jasper-reports