jsp - JasperReport 查看器 JSP WebApp 错误

标签 jsp tomcat jasper-reports


我正在使用;

  1. Tomcat 8
  2. Jasper iReport 5.6 也试用了 Jasper Studio 6.1
  3. Tomcat/lib/jasperreports-6.1.1
  4. Tomcat/lib/mysql-connector-java-5.1.34-bin
  5. Tomcat/lib/commons-beanutils-1.9.0.jar
  6. Tomcat/lib/commons-collections-3.2.1.jar
  7. Tomcat/lib/commons-digester-2.1.jar
  8. Tomcat/lib/commons-logging-1.1.1.jar
  9. Tomcat/lib/groovy-all-2.4.3.jar
  10. 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 和报告文件)See the error screenshot

高度赞赏任何想法和建议。
我已经按照this tutorial关注了

谢谢你,
苏朋

最佳答案

您真的应该考虑正确部署您的应用程序,请参阅@Ghayel 的回答

您的问题是 application.getRealPath("report.jasper") 返回 null,因此找不到 report.jasper..

由于您坚持使用工作代码:

替换

 File reportFile = new File(application.getRealPath("report.jasper"));

File reportFile = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 8.0\\webapps\\reports\\report.jasper");

确保你的 .jrxml.jasper 的编译版本在那里......并且 nullpointer 将消失。

关于jsp - JasperReport 查看器 JSP WebApp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799066/

相关文章:

java - 如何改变 JasperViewer 的外观和感觉?

java - 在 spring mvc 中提交表单时出现 HTTP 状态 400 错误

java - 在jsp中显示所有记录时隐藏或删除行的重复单元格?

java - 从 jsp 页面打印到打印机。使用按钮从数据库检索数据并打印

java - Spring Boot 在作为传统 war 部署时尝试运行嵌入式 Tomcat

java - Jasper 报告 pdf 名称问题

jsp - Tomcat 7 JSP 页面 : Avoid 500 error when authenticating in Tomcat using Shibboleth authentication session

java - 从 Eclipse 内部运行时如何访问 <tomcat>\bin\*.properties?

html - 样式表未发送到浏览器

JAVA_HOME 未正确定义