小编Myt*_*hox的帖子

即使是最简单的Jasperreport jrxml,也是空白PDF

我有一个带有glassfish 3.1 + JSF的EJB站点,用于jasperreport 4.0.1.该网站在流式传输pdf上没有问题,但是在使用runReportToPdfStream打印PDF时它产品为空白PDF,下面是代码片段:

EJB

public class BookEJB {  
    public void printReport() throws ClassNotFoundException, IOException, JRException {
        Map parameterMap = new HashMap();

        FacesContext ctx = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
        InputStream reportStream = ctx.getExternalContext().getResourceAsStream("/reports/test.jasper");

        ServletOutputStream servletOutputStream = response.getOutputStream();
        servletOutputStream.flush();

        response.setContentType("application/pdf");
        JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap);

        servletOutputStream.flush();
        servletOutputStream.close();
        ctx.responseComplete();
}}
Run Code Online (Sandbox Code Playgroud)

test.jrxml - 没有SQL连接的简单报告

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="800" pageHeight="1200" columnWidth="555" leftMargin="25" rightMargin="25" topMargin="30" bottomMargin="30">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <queryString>
        <![CDATA[]]>
    </queryString> …
Run Code Online (Sandbox Code Playgroud)

java jasper-reports

19
推荐指数
1
解决办法
2万
查看次数

PrimeFaces和JasperReports

我正在尝试开发一个用于报告的Web应用程序,并且已经构建了一个包含EJB3 + primefaces的站点.现在,我正在努力将Jasperreport整合到主要方面...我没有找到关于这个主题的指导或讨论,我想这是不可能的?或者实际上这不是一种正确的方法吗?我实际上是开发JavaEE6的新手,不打算使用像spring和seam这样的框架.


模型

@Stateless
@LocalBean
public class BookEJB {
    // @Override
    public void printReport() throws ClassNotFoundException, IOException, JRException, SQLException {
        Connection connection;
        Map parameterMap = new HashMap();

        FacesContext ctx = FacesContext.getCurrentInstance();

        HttpServletResponse response = (HttpServletResponse) ctx
                .getExternalContext().getResponse();

        InputStream reportStream = ctx.getExternalContext()
                .getResourceAsStream("reports/report1.jasper");

        ServletOutputStream servletOutputStream = response.getOutputStream();
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost/bookdb?user=root&password=******");

        ctx.responseComplete();
        response.setContentType("application/pdf");

        JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection);

        connection.close();
        servletOutputStream.flush();
        servletOutputStream.close();

    }
}
Run Code Online (Sandbox Code Playgroud)

调节器

@ManagedBean(name = "bookCtrl")
@RequestScoped
public class BookController {

    @EJB
    private BookEJB bookEJB;

    public void doPrintReport() throws ClassNotFoundException, …
Run Code Online (Sandbox Code Playgroud)

java jsf glassfish jasper-reports primefaces

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

jasper-reports ×2

java ×2

glassfish ×1

jsf ×1

primefaces ×1