我在打开iReport报表时出现这个错误,但是报表能正常显示,不知道是什么原因请大侠们帮解决一下~![WARN ] 2006-11-03 09:11:28 net.sf.jasperreports.engine.fill.JRBaseFiller - The supplied java.sql.Connection object is null.
[WARN ] 2006-11-03 09:11:28 net.sf.jasperreports.engine.fill.JRBaseFiller - The supplied java.sql.Connection object is null.
[WARN ] 2006-11-03 09:11:28 net.sf.jasperreports.engine.fill.JRBaseFiller - The supplied java.sql.Connection object is null.
[WARN ] 2006-11-03 09:11:29 net.sf.jasperreports.engine.fill.JRBaseFiller - The supplied java.sql.Connection object is null.
[ERROR] 2006-11-03 09:11:29 org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sqgl].[jsp] - 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:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
at org.apache.jsp.report.jsp.marriage_005fmanagement.marry_005ftd_005fjhz_jsp._jspService(org.apache.jsp.report.jsp.marriage_005fmanagement.marry_005ftd_005fjhz_jsp:192)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.HibernateFilter.doFilter(HibernateFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
[ERROR] 2006-11-03 09:11:29 org.apache.catalina.core.ContainerBase.[Catalina].[localhost] - Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/Exception.jsp]
java.lang.IllegalStateException
at org.apache.coyote.Response.reset(Response.java:296)
at org.apache.catalina.connector.Response.reset(Response.java:652)
at org.apache.catalina.connector.Response.reset(Response.java:918)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:356)
at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:212)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    这个错误算是很有特点了,原来我也遇到过。在CSDN也有这样的问题。
    一般解决方式是<%%>和<%%>代码段之间不要有空格、分段这样的格式。特别是最后<%%>不能有回车。
      

  2.   

    不会吧,我好像原码里面没有看见有你说的那种情况
    <%@  page  contentType="text/html;  charset=GBK"  %>
    <%@ page import="com.webrage.common.util.*" %>
    <%@ include file="../report_package.jsp" %>
    <%
    Log log = LogFactory.getLog("marry_td_jhz.jsp");  String reportsPath = "/report/reports/marriage_management/";
    Integer count = new Integer(request.getParameter("count"));
    Integer trs14_id = new Integer(request.getParameter("trs14_id"));
    if(count.intValue()==1){
    reportsPath +=trs14_id+"/";
    }
    String jspPath = "/report/jsp/marriage_management/"; THJ05DAO thj05_dao = new THJ05DAO();
    THJ05 thj05 = thj05_dao.load(new Integer(request.getParameter("id")));
    //格式化日期
    String recordDate=UtilTool.getStringFromDate(thj05.getThj0524()).substring(0,4)+"年"+
          UtilTool.getStringFromDate(thj05.getThj0524()).substring(5,7)+"月"+
          UtilTool.getStringFromDate(thj05.getThj0524()).substring(8,10)+"日";
       String manBirthday=UtilTool.getStringFromDate(thj05.getThj0504()).substring(0,4)+"年"+
          UtilTool.getStringFromDate(thj05.getThj0504()).substring(5,7)+"月"+
              UtilTool.getStringFromDate(thj05.getThj0504()).substring(8,10)+"日";
       String womanBirthday=UtilTool.getStringFromDate(thj05.getThj0514()).substring(0,4)+"年"+
          UtilTool.getStringFromDate(thj05.getThj0514()).substring(5,7)+"月"+
          UtilTool.getStringFromDate(thj05.getThj0514()).substring(8,10)+"日";   
    List list = new ArrayList(); MarriageCertificate record = new MarriageCertificate();
       
        record.setRecordOrganName(thj05.getThj0527());
        record.setRecorderUnderwrite(thj05.getThj0528());
    record.setRecordDate(recordDate);
    record.setRecordNo(thj05.getThj0525());
    record.setDetail(thj05.getThj0535());

    record.setManName(thj05.getThj0502());
    record.setManBirthday(manBirthday);
    record.setManIdentity(thj05.getThj0503());
    record.setManCountry(thj05.getThj0506());

    record.setWomanName(thj05.getThj0512());
    record.setWomanBirthday(womanBirthday);
    record.setWomanIdentity(thj05.getThj0513());
    record.setWomanCountry(thj05.getThj0516());    
        list.add(record);java.io.File reportFile = new java.io.File(application.getRealPath(reportsPath+"marry_td_jhz.jasper"));
    java.io.File reportFile1 = new java.io.File(application.getRealPath(reportsPath+"marry_td_jhz_man_header.jasper"));
    java.io.File reportFile2 = new java.io.File(application.getRealPath(reportsPath+"marry_td_jhz_man_detail.jasper"));
    java.io.File reportFile3 = new java.io.File(application.getRealPath(reportsPath+"marry_td_jhz_woman_header.jasper"));
    java.io.File reportFile4 = new java.io.File(application.getRealPath(reportsPath+"marry_td_jhz_woman_detail.jasper"));
    if (!reportFile.exists())
    throw new JRRuntimeException("File marry_td_jhz.jasper not found. The report design must be compiled first.");JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
    JasperReport jasperReport1 = (JasperReport)JRLoader.loadObject(reportFile1.getPath());
    JasperReport jasperReport2 = (JasperReport)JRLoader.loadObject(reportFile2.getPath());
    JasperReport jasperReport3 = (JasperReport)JRLoader.loadObject(reportFile3.getPath());
    JasperReport jasperReport4 = (JasperReport)JRLoader.loadObject(reportFile4.getPath());
    Map parameters = new HashMap();parameters.put("marry_td_jhz_man_header", jasperReport1);
    parameters.put("marry_td_jhz_man_detail", jasperReport2);
    parameters.put("marry_td_jhz_woman_header", jasperReport3);
    parameters.put("marry_td_jhz_woman_detail", jasperReport4);Class clazz = Class.forName("com.report.bean.MarriageCertificate");
    java.lang.reflect.Field[] field = clazz.getFields();String[] fields = new String[field.length];
    for (int i = 0;i < field.length ; i++){
    fields[i] = field[i].getName();
    }list = ListParseUtil.getReportList("com.report.bean.MarriageCertificate",fields,list,true);
    HibernateDataSource ds = new HibernateDataSource(list, fields);byte[] bytes = 
    JasperRunManager.runReportToPdf(
    reportFile.getPath(), 
    parameters, 
    ds
    );
    //response.reset();
    response.setContentType("application/pdf");
    response.setContentLength(bytes.length);
    ServletOutputStream ouputStream ;
    //PrintWriter pw;
    try{ 
    ouputStream = response.getOutputStream();
    ouputStream.write(bytes, 0, bytes.length);
    ouputStream.flush();
    ouputStream.close();
        //写二进制数据 
    }catch(Exception e){ 
       //pw=response.getWriter(); 
       //pw.println("There was an error: "+e.getMessage()) ;

    %>
      

  3.   

    不是我是用JSP的,郁闷了,看了看还是找不出什么原因