jasperreports  最后没显示出来   确提示下载,怎么办。

解决方案 »

  1.   

    2009-8-4 17:37:33 org.apache.catalina.core.ApplicationContext log
    信息: HTMLManager: init: Associated with Deployer 'Catalina:type=Deployer,host=localhost'
    2009-8-4 17:37:33 org.apache.catalina.core.ApplicationContext log
    信息: HTMLManager: init: Global resources are available
    2009-8-4 17:37:33 org.apache.catalina.core.ApplicationContext log
    信息: HTMLManager: list: Listing contexts for virtual host 'localhost'
    2009-8-4 17:37:40 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet jsp threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    at org.apache.catalina.connector.Response.getWriter(Response.java:604)
    at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
    at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
    at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:119)
    at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:78)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:165)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Unknown Source)
      

  2.   

    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.SQLException"%>
    <%@ page import="java.io.*"%>
    <%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>
    <%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
    <%@ page import="net.sf.jasperreports.engine.util.JRLoader"%>
    <%@ page import="net.sf.jasperreports.engine.JasperReport"%>
    <%@ page import="net.sf.jasperreports.engine.JRException"%>
    <%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>
    <%@ page
    import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
    <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <body>
    <%
    Connection conn = null;
    try
    {
    //装载jasper文件application   
    File exe_rpt = new File(application
    .getRealPath("reportTest.jasper"));
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    conn = DriverManager
    .getConnection(
    "jdbc:microsoft:sqlserver://localhost:1433;databaseName=reportTest",
    "sa", "");
    JasperReport jasperReport = (JasperReport) JRLoader
    .loadObject(exe_rpt.getAbsolutePath());
    Map<String, String> map = new HashMap<String, String>();
    map.put("Facility", "Technology");
    JasperPrint jasperPrint = JasperFillManager.fillReport(
    jasperReport, map, conn); ByteArrayOutputStream oStream = new ByteArrayOutputStream(); JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT,
    jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
    oStream);
    exporter
    .setParameter(
    JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
    Boolean.TRUE); // 删除记录最下面的空行   
    exporter.setParameter(
    JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
    Boolean.FALSE);// 删除多余的ColumnHeader    
    exporter.setParameter(
    JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
    Boolean.FALSE);// 显示边框    exporter.exportReport(); byte[] bytes = oStream.toByteArray();
    if (bytes != null && bytes.length > 0)
    {
    response.reset();
    response.setContentType("application/vnd.ms-excel");
    response.setContentLength(bytes.length);
    ServletOutputStream ouputStream = response
    .getOutputStream();
    ouputStream.write(bytes, 0, bytes.length);
    ouputStream.flush();
    ouputStream.close();
    } else
    {
    out.print("bytes were null!");
    }
    conn.close();
    } catch (JRException ex)
    {
    if (conn != null)
    {
    try
    {
    conn.close();
    } catch (SQLException e1)
    {
    }
    }
    out.print("Jasper Output Error:" + ex.getMessage());
    }
    %>
    </body>
    </html>这是源码
      

  3.   

    .... 可不可以把你想要的目标, 你的问题, 说下, 然后再帖下 exception(如果有的话),否则只有让人去猜了.... 
      

  4.   

    header('Content-Type: application/vnd.ms-excel'); 你最好用 servlet ,而不是用 jsp表现出来,同时要设置 contentType 为 excel
      

  5.   

    加我 QQ 692967671  我也正在搞jasperReport 报表和 jfreeChart 统计图这块