我用了JASPERREPORT了,在TOMCAT下完全可以运行,无错,在WEBLOGIC下就出了上述的错误了

解决方案 »

  1.   

    附上代码
    <%@include file="../gy/cldchecklgsub.jsp"%>
    <%@include file="../gy/cldpage.jsp"%>
    <%@include file="../gy/clddbpara.jsp"%>
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="net.sf.jasperreports.engine.*"%>
    <%@ page import="net.sf.jasperreports.engine.util.*" %> 
    <%@ page import="net.sf.jasperreports.engine.export.*" %> 
    <%@ page import="net.sf.jasperreports.engine.JasperFillManager" %>
    <%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
    <%@ page import="net.sf.jasperreports.engine.JRException"%>
    <%@ page import="net.sf.jasperreports.engine.JasperRunManager"%>
    <%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>
    <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
    <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.text.*"%>
    <%@ page import="javax.naming.*" %> 
     <jsp:useBean id = "bnLoginUser" scope="page" class="gypckg.CUser"/>
     
     <% 
    bnLoginUser = (gypckg.CUser)session.getAttribute("loginuser"); 
    String username = bnLoginUser.getUsername();
    String rgreportfiletype = request.getParameter("rgreportfiletype");
    String unitlen = request.getParameter("unitlen");
    String unitname = request.getParameter("unitname");
    String rowname = null;if(unitlen.equals("2"))
        {rowname="一级分行保卫管理人员基本情况统计表";}
    if(unitlen.equals("4"))
        {rowname=unitname + "、综合型城区支行保卫管理人员基本情况统计表";}    
    if(unitlen.equals("6"))
         {rowname="二级分行保卫管理人员基本情况统计表";}
    File exe_rpt = new File(application.getRealPath("/bbsc/report001.jasper"));
    if ( !exe_rpt.exists() )
        response.sendRedirect("../gy/errorfile.jsp");
    CDbConnection mDBConnecton = new CDbConnection(DBCLASSFORNAME,DBURL,DBUSER,DBPWD);
    Connection conn = mDBConnecton.getConn(); //close conn
    if(null != conn)
    {
        try
        {  
            Map parameters = new HashMap();
            parameters.put("username",username);
            parameters.put("rowname",rowname);
            if (rgreportfiletype.equals("pdf") || rgreportfiletype.equals("PDF") )
            { 
                JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt.getPath(), parameters, conn); 
                JRExporter exporter = null;            
                exporter = new JRPdfExporter(); 
                response.setContentType("application/pdf");             
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
                exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK"); 
                //exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); 
                            
                ByteArrayOutputStream byOutStrm = new ByteArrayOutputStream();            
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byOutStrm); 
                exporter.exportReport();                    
                byte[] bytes;
                bytes = byOutStrm.toByteArray();
                java.util.Date dtNowTime = new java.util.Date();
                SimpleDateFormat dtFrmt = new SimpleDateFormat("yyyyMMddHHmmss");
                String strFileID = "Report001T" + dtFrmt.format(dtNowTime);
                String strFileName = "attachment;filename="+strFileID+".pdf";
                response.setHeader("Content-disposition",strFileName);
                response.setContentLength(bytes.length);
                ServletOutputStream ouputStream = response.getOutputStream();
                ouputStream.write(bytes, 0, bytes.length);
                ouputStream.flush();
                ouputStream.close();   
            } 
            else if (rgreportfiletype.equals("xls") || rgreportfiletype.equals("XLS") )
            { 
                JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt.getPath(), parameters, conn); 
                JRExporter exporter = null;
                                     
                exporter = new JRXlsExporter(); 
                response.setContentType("application/vnd.ms-excel");    
                //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.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
                exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK"); 
                
                ByteArrayOutputStream byOutStrm = new ByteArrayOutputStream();            
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byOutStrm); 
                exporter.exportReport();                    
                byte[] bytes;
                bytes = byOutStrm.toByteArray();
                java.util.Date dtNowTime = new java.util.Date();
                SimpleDateFormat dtFrmt = new SimpleDateFormat("yyyyMMddHHmmss");
                String strFileID = "Report001T" + dtFrmt.format(dtNowTime);
                String strFileName = "attachment;filename="+strFileID+".xls";
                response.setHeader("Content-disposition",strFileName);
                response.setContentLength(bytes.length);
                ServletOutputStream ouputStream = response.getOutputStream();
                ouputStream.write(bytes, 0, bytes.length);
                ouputStream.flush();
                ouputStream.close();  
            }        
            else if (rgreportfiletype.equals("html") || rgreportfiletype.equals("HTML") )
            { 
                JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt.getPath(), parameters, conn); 
                JRExporter exporter = null;
                
                exporter = new JRHtmlExporter(); 
                exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 
                  
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
                exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK"); 
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); 
                exporter.exportReport();   
            } 
        }//try
        catch(Exception e)
        {     
            conn.close();      
            response.sendRedirect("../gy/errorconn.jsp");
        } 
        if ( !conn.isClosed() )
            conn.close();  
    }//if conn
    else
        response.sendRedirect("../gy/errorconn.jsp");  
     %>