9 Replies Latest reply on Aug 15, 2008 11:34 AM by Alex Tserbo

    rich:columns in rich:dataGrid

    Allen Weeks Newbie

      I am trying to use a rich:columns component to dynamically create rich:dataTables of varing columns which are inside a rich:dataGrid. I want to get the data for the rich:columns value attribute from the rich:dataGrid, however, when the app is run I get a javax.servlet.jsp.JspTagException: FOREACH_BAD_ITEMS exception. This exception is thrown when the columns component cannot determine the type of data it is dealing with.

      The documentation for the columns component states that it should successfully accept any el expression that evaluates to a java.lang.object. In the latest GA jars for richfaces, the columns component only seem to work when the value attribute is supplied directly from the backing bean for the page.

      Please advice me as to how to successfully use the rich:columns component to dynamically create these tables from data provided by an el call to the dataGrid component.

      Any help is appreciated,

      Thanks

      Allen


      Below is some code snippets and the resulting stacktrace:

      JSP Page:

      <rich:dataGrid id="invTable" columns="1" var="data" value="#{inventory$InventoryMain.inventoryData}">
      <h:panelGrid width="100%" columns="2" columnClasses="gridColumnTopLeft,gridColumnTopLeft">
      <h:panelGrid columns="1" columnClasses="gridColumnTopLeft" border="1">
      <rich:dataTable id="dt1" columnClasses="#{inventory$InventoryMain.colClasses}"
      rendered="#{inventory$InventoryMain.carBased}"
      value="#{data.inventoryDisplayList}" var="col">
      <rich:columns value="#{data.dataKeys}"
      var="hdr" index="ind">
      <f:facet name="header">
      <h:outputText value="#{data.colHeaders[ind]}"/>
      </f:facet>
      <h:outputText value="#{col[hdr]}" />
      <f:facet name="footer">
      <a4j:commandLink action="#{inventory$InventoryMain.goToBOL_action}"
      value="#{data.bolLinks[ind]}">
      <a4j:actionparam name="bolnum" value="#{data.bolLinks[ind]}"
      assignTo="#{inventory$InventoryMain.bolNumberVal}"/>
      </a4j:commandLink>
      </f:facet>
      </rich:columns>
      </rich:dataTable>

      </h:panelGrid>
      </h:panelGrid>
      </rich:dataGrid>


      Resulting stacktrace:

      javax.servlet.jsp.JspTagException: FOREACH_BAD_ITEMS
      at org.richfaces.iterator.SimpleForEachIterator.toForEachIterator(SimpleForEachIterator.java:116)
      at org.richfaces.iterator.SimpleForEachIterator.supportedTypeForEachIterator(SimpleForEachIterator.java:79)
      at org.richfaces.taglib.ColumnsTag.prepare(ColumnsTag.java:420)
      at org.richfaces.taglib.ColumnsTag.doStartTag(ColumnsTag.java:256)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fcolumns_005f0(InventoryMain_jsp.java:845)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataTable_005f0(InventoryMain_jsp.java:808)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f2(InventoryMain_jsp.java:752)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f0(InventoryMain_jsp.java:398)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataGrid_005f0(InventoryMain_jsp.java:347)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fpanel_005f0(InventoryMain_jsp.java:298)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fform_005f0(InventoryMain_jsp.java:237)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_f_005fview_005f0(InventoryMain_jsp.java:194)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspService(InventoryMain_jsp.java:157)
      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:393)
      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.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
      at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
      at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)
      at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)
      at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:320)
      at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
      at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      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:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      Aug 3, 2008 6:33:03 PM org.apache.catalina.core.ApplicationContext log
      SEVERE: org.apache.jasper.JasperException: An exception occurred processing JSP page /inventory/InventoryMain.jsp at line 44

      41: <rich:dataTable id="dt1" columnClasses="#{inventory$InventoryMain.colClasses}"
      42: rendered="#{inventory$InventoryMain.carBased}"
      43: value="#{data.inventoryDisplayList}" var="col">
      44: <rich:columns value="#{data.dataKeys}"
      45: var="hdr" index="ind">
      46: <f:facet name="header">
      47: <h:outputText value="#{data.colHeaders[ind]}"/>


      Stacktrace:
      javax.faces.FacesException: org.apache.jasper.JasperException: An exception occurred processing JSP page /inventory/InventoryMain.jsp at line 44

      41: <rich:dataTable id="dt1" columnClasses="#{inventory$InventoryMain.colClasses}"
      42: rendered="#{inventory$InventoryMain.carBased}"
      43: value="#{data.inventoryDisplayList}" var="col">
      44: <rich:columns value="#{data.dataKeys}"
      45: var="hdr" index="ind">
      46: <f:facet name="header">
      47: <h:outputText value="#{data.colHeaders[ind]}"/>


      Stacktrace:
      at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:415)
      at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)
      at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)
      at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:320)
      at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
      at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      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:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: org.apache.jasper.JasperException: An exception occurred processing JSP page /inventory/InventoryMain.jsp at line 44

      41: <rich:dataTable id="dt1" columnClasses="#{inventory$InventoryMain.colClasses}"
      42: rendered="#{inventory$InventoryMain.carBased}"
      43: value="#{data.inventoryDisplayList}" var="col">
      44: <rich:columns value="#{data.dataKeys}"
      45: var="hdr" index="ind">
      46: <f:facet name="header">
      47: <h:outputText value="#{data.colHeaders[ind]}"/>


      Stacktrace:
      at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
      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.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
      at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
      ... 33 more
      Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: FOREACH_BAD_ITEMS
      at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
      at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspService(InventoryMain_jsp.java:167)
      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:393)
      ... 46 more
      Caused by: javax.servlet.jsp.JspTagException: FOREACH_BAD_ITEMS
      at org.richfaces.iterator.SimpleForEachIterator.toForEachIterator(SimpleForEachIterator.java:116)
      at org.richfaces.iterator.SimpleForEachIterator.supportedTypeForEachIterator(SimpleForEachIterator.java:79)
      at org.richfaces.taglib.ColumnsTag.prepare(ColumnsTag.java:420)
      at org.richfaces.taglib.ColumnsTag.doStartTag(ColumnsTag.java:256)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fcolumns_005f0(InventoryMain_jsp.java:845)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataTable_005f0(InventoryMain_jsp.java:808)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f2(InventoryMain_jsp.java:752)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f0(InventoryMain_jsp.java:398)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataGrid_005f0(InventoryMain_jsp.java:347)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fpanel_005f0(InventoryMain_jsp.java:298)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fform_005f0(InventoryMain_jsp.java:237)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_f_005fview_005f0(InventoryMain_jsp.java:194)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspService(InventoryMain_jsp.java:157)
      ... 49 more
      Aug 3, 2008 6:33:03 PM org.apache.catalina.core.StandardWrapperValve invoke
      SEVERE: Servlet.service() for servlet Faces Servlet threw exception
      javax.servlet.jsp.JspTagException: FOREACH_BAD_ITEMS
      at org.richfaces.iterator.SimpleForEachIterator.toForEachIterator(SimpleForEachIterator.java:116)
      at org.richfaces.iterator.SimpleForEachIterator.supportedTypeForEachIterator(SimpleForEachIterator.java:79)
      at org.richfaces.taglib.ColumnsTag.prepare(ColumnsTag.java:420)
      at org.richfaces.taglib.ColumnsTag.doStartTag(ColumnsTag.java:256)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fcolumns_005f0(InventoryMain_jsp.java:845)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataTable_005f0(InventoryMain_jsp.java:808)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f2(InventoryMain_jsp.java:752)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fpanelGrid_005f0(InventoryMain_jsp.java:398)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fdataGrid_005f0(InventoryMain_jsp.java:347)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_rich_005fpanel_005f0(InventoryMain_jsp.java:298)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_h_005fform_005f0(InventoryMain_jsp.java:237)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspx_meth_f_005fview_005f0(InventoryMain_jsp.java:194)
      at org.apache.jsp.inventory.InventoryMain_jsp._jspService(InventoryMain_jsp.java:157)
      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:393)
      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.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
      at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
      at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)
      at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)
      at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:320)
      at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
      at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      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:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)