论坛首页 入门技术论坛

我的 ExtremeTable 出错了 ^0^

浏览 5249 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-05-10  
我在做数据库查询显示时,对已经查询的数据进行排序,系统抛出 这样的excepion:
17:20:09,281 ERROR [debugjsp]:704 - Servlet.service() for servlet debugjsp threw exception
javax.servlet.jsp.JspException: TableTag Problem: javax.servlet.jsp.JspException: TableTag.doAfterBody() Problem: java.lang.NullPointerException
    at org.extremecomponents.table.core.TableModelUtils.isSorted(TableModelUtils.java:110)
    at org.extremecomponents.table.cell.HeaderCell.getHtmlDisplay(HeaderCell.java:49)
    at org.extremecomponents.table.handler.ColumnHandler.getHeaderColumns(ColumnHandler.java:133)
    at org.extremecomponents.table.view.html.TableBuilder.headerRow(TableBuilder.java:135)
    at org.extremecomponents.table.view.HtmlView.beforeBodyInternal(HtmlView.java:36)
    at org.extremecomponents.table.view.AbstractHtmlView.beforeBody(AbstractHtmlView.java:72)
    at org.extremecomponents.table.handler.ViewHandler.setView(ViewHandler.java:61)
    at org.extremecomponents.table.core.TableModelImpl.execute(TableModelImpl.java:253)
    at org.extremecomponents.table.tag.TableTag.doAfterBody(TableTag.java:459)
    at org.apache.jsp.dynareport.report.output_jsp._jspx_meth_ec_table_0(org.apache.jsp.dynareport.report.output_jsp:166)
    at org.apache.jsp.dynareport.report.output_jsp._jspService(org.apache.jsp.dynareport.report.output_jsp:108)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.LoginFilter.doFilter(LoginFilter.java:89)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:75)
    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:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    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)

    at org.extremecomponents.table.tag.TableTag.doAfterBody(TableTag.java:468)
    at org.apache.jsp.dynareport.report.output_jsp._jspx_meth_ec_table_0(org.apache.jsp.dynareport.report.output_jsp:166)
    at org.apache.jsp.dynareport.report.output_jsp._jspService(org.apache.jsp.dynareport.report.output_jsp:108)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.LoginFilter.doFilter(LoginFilter.java:89)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:75)
    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:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    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)

    at org.extremecomponents.table.tag.TableTag.doCatch(TableTag.java:488)
    at org.apache.jsp.dynareport.report.output_jsp._jspx_meth_ec_table_0(org.apache.jsp.dynareport.report.output_jsp:176)
    at org.apache.jsp.dynareport.report.output_jsp._jspService(org.apache.jsp.dynareport.report.output_jsp:108)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.LoginFilter.doFilter(LoginFilter.java:89)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.cavell.frameworkx.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:75)
    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:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    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)
   发表时间:2007-05-10  
寻找中。。。。
0 请登录后投票
   发表时间:2007-05-10  
把你代码贴出来看看
0 请登录后投票
   发表时间:2007-05-10  
这个是 页面代码:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="../../common/global.jsp"%>
<%@ taglib uri="/tld/extremecomponents" prefix="ec" %>
<html>
<head>
<title>CCN</title>
<jsp:include page="../../common/header.jsp" flush="true"/>
</head>
<link rel="stylesheet" href="<%=cp%>/dynareport/report/extremecomponents.css"
type="text/css">

<body>
<%
System.out.println("run it");
%>
<jsp:include page="../../common/sub_header.jsp" flush="true"/>
<div class="pageHeader">My Report
  <div align="right">  </div>
</div>
<div class="content">
  <ec:table
          items="columnValue"
          title="${reportTitle}"
          action="${pageContext.request.contextPath}/dynareport/report/ReportSettingAction.do"
          imagePath="${pageContext.request.contextPath}/images/table/*.gif"
          width="80%"
          filterable="false"
          sortable="true"
          retrieveRowsCallback="limit"
          sortRowsCallback="limit"
          filterRowsCallback="limit"
  >


  <ec:exportXls
  view="xls"
  fileName="output.xls"
  tooltip="Export Excel"
  viewResolver="com.cavell.dynareport.reportconf.XlsViewResolver"/>

  <ec:row>
          <ec:columns autoGenerateColumns="com.cavell.dynareport.reportconf.EditGenerateColumnsImpl">
          </ec:columns>
  </ec:row>
  </ec:table>

</div>
<jsp:include page="../../common/footer.jsp" flush="true"/>
</body>
</html>
0 请登录后投票
   发表时间:2007-05-10  
这个是类处理代码:
ReportService serv = ReportService.getInstance();
        UserInfoService uis = UserInfoService.getInstance();

        Collection<DssReportColumn> columns = null;
        Collection<DssReportCriteria> criterias = null;
        String tableName = "";
        String reportName = "";

        if (request.getParameter("id") != null
            && !request.getParameter("id").equals("")) {
            DssReport report = serv.retrieveById(Integer.parseInt(request.
                getParameter("id")));
            columns = report.getDssReportColumns();
            criterias = report.getDssReportCriterias();
            tableName = report.getTableName();
            reportName = report.getReportName();

        } else {
            ReportForm rform = (ReportForm) form;

            columns = new ArrayList<DssReportColumn>();
            String[] sel = rform.getColumnSel();
            for (String s : sel) {
                DssReportColumn drc = new DssReportColumn();
                drc.setColomn(s);
                columns.add(drc);
            }

            criterias = new ArrayList<DssReportCriteria>();
            List<CriteriaForm> l = rform.getColumns();
            for (CriteriaForm o : l) {
                DssReportCriteria drc = new DssReportCriteria();
                drc.setColomn(o.getColumnName());
                drc.setOperator(o.getOperator());
                drc.setValue(o.getValue());
                criterias.add(drc);
            }

            tableName = rform.getTableName();
            reportName = rform.getReportName();

        }

        String sql = buildsql(columns, criterias, tableName);

        if (sql == null || sql.equals("")) {
            request.setAttribute("error","The report is not correct. Please redefine it.");
            return mapping.findForward("error");
        }

        Limit limit = ExtremeTablePage.getLimit(request, 15);
        boolean needFilter=false;
        if("ec".equals(request.getParameter("ec_eti"))){
            needFilter=true;
        }
        Page page = serv.findBySql(sql, ExtremeTablePage.getSort(limit)
                                   , limit.getPage(), limit.getCurrentRowsDisplayed(),needFilter);
        List<Map> reptList = (List<Map>) page.getResult();

        request.setAttribute("totalRows", new Integer(page.getTotalCount()));

        Table table = ReportConfig.getInstance().getTable(tableName);

        Map viewMap = new LinkedHashMap();
        for (DssReportColumn col : columns) {
    viewMap.put(col.getColomn(),
                            table.findColumn(col.getColomn()).getAlias());
        }

        DssSysUser user = uis.retrieveById(new Integer((String) request.getSession().getAttribute("userId")));

        Map detailMap = new HashMap();
        if (page.getTotalCount() <= MAX_OUTPUT_SIZE) {
            detailMap.put("results", page.getTotalCount() + " rows are exported");
        } else {
            detailMap.put("results", MAX_OUTPUT_SIZE +" rows are exported"
                          + " there are still more in database.");
        }
        detailMap.put("sql", sql);
        detailMap.put("author", user.getUserName());
        detailMap.put("time",
                      DateFormatUtils.format(new Date(),
                                             DateFormatUtils.
                                             ISO_DATETIME_FORMAT.
                                             getPattern()));



        request.setAttribute("detail", detailMap);
        request.setAttribute("reportName", reportName);
        request.setAttribute("reportTitle",
                             "ReportName="
                             + reportName
                             + "<br/>"
                             + "SQL=" + sql + "<br/>"
                             + "Author="
                             + user.getUserName()
                             + "<br/>"
                             + "CreateTime="
                             + DateFormatUtils.format(new Date(),
            DateFormatUtils.ISO_DATETIME_FORMAT.getPattern()));
        request.setAttribute("columnName", viewMap);
        request.setAttribute("columnValue", reptList);

        return mapping.findForward("output");
    }
0 请登录后投票
   发表时间:2007-05-10  
“javax.servlet.jsp.JspException: TableTag Problem: javax.servlet.jsp.JspException: TableTag.doAfterBody() Problem: java.lang.NullPointerException”检查一下为什么会有这个异常
0 请登录后投票
   发表时间:2007-05-11  
hgq0011     14 小时前

“javax.servlet.jsp.JspException: TableTag Problem: javax.servlet.jsp.JspException: TableTag.doAfterBody() Problem: java.lang.NullPointerException”检查一下为什么会有这个异常


我就是找不到为什么会出现这样的Exception!
0 请登录后投票
   发表时间:2007-05-11  
hongnaiqin 写道
hgq0011     14 小时前

“javax.servlet.jsp.JspException: TableTag Problem: javax.servlet.jsp.JspException: TableTag.doAfterBody() Problem: java.lang.NullPointerException”检查一下为什么会有这个异常


我就是找不到为什么会出现这样的Exception!


那你找到那些是设置值的时候,那些值有没有为空?相关的对象是不是空?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics