2016-06-22 12 views
0

Ich verwende JSF 2.1 mit JBOSS eap6.1 Primefaces 5.2JSF 2.1 Primefaces 5.2 Datentabelle bearbeiten Null-Zeiger Ausnahme

ich eine Website so dass der Benutzer machen wollte Artikel eingeben und sich an einen Tisch zu bringen. Nachdem ich 200 Einträge in der Tabelle überschritten habe, ist die Leistung nicht mehr gut, da ich die Tabelle mit jedem Zusatz aktualisieren muss, um das zuletzt hinzugefügte Element zu sehen. Aber jetzt habe ich eine Nullpointer während Aktualisieren der Tabelle nach 230 ROWS erreicht, bis 229 Zeilen, die es funktioniert gut:

09:29:25,475 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/JETMealOrder].[Faces Servlet]] (http-localhost/127.0.0.1:8088-6) JBWEB000236: Servlet.service() for servlet Faces Servlet threw exception: java.lang.NullPointerException 
    at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:443) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:72) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:577) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:115) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1] 
    at org.primefaces.context.PrimePartialResponseWriter.startDocument(PrimePartialResponseWriter.java:146) [primefaces-5.2.jar:5.2] 
    at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:199) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:124) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.19-redhat-1.jar:2.1.19-redhat-1] 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100) [primefaces-5.2.jar:5.2] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45] 

Code:

<p:dataTable tableStyle="width:auto" id="items" var="p" 
 
      widgetVar="itemstbl" value="#{viewOrder.order.opNonMenus}" 
 
      editMode="cell" editable="#{viewOrder.readonly==false}" 
 
      rowKey="#{p.serial}" draggableRows="#{viewOrder.readonly==false}" 
 
      sortBy="#{p.serial}"> 
 
    <p:ajax event="rowReorder" update="form:items" 
 
      listener="#{viewOrder.onRowReorder}" /> 
 
    <f:facet name="header">Meal Order Details</f:facet> 
 
    <p:column headerText="S.No." style="width:25px"> 
 
     <h:outputText value="#{p.serial}" /> 
 
    </p:column> 
 
    <p:column headerText="Item Code"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText value="#{(p.withCode==1)? p.itemCode : '@FLP'}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputText value="#{p.itemCode}" id="code" 
 
          onblur="value = value.toUpperCase()"> 
 
        <p:ajax event="blur" update="items" 
 
          listener="#{viewOrder.validateNonMenu(p)}" /> 
 
       </p:inputText> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="Item Description"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText id="qdesc" value="#{p.itemDesc}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputTextarea value="#{p.itemDesc}" autoResize="true" 
 
           cols="30" placeholder="Item Description" rows="1" /> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="Class"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText id="qclass" value="#{p.classCode.toUpperCase()}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputText value="#{p.classCode}" 
 
          onblur="value = value.toUpperCase()" /> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="UOM"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText id="quom" value="#{p.uom}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputText value="#{p.uom}" 
 
          onblur="value = value.toUpperCase()"> 
 
        <p:ajax event="blur" update="form:items:0:code" /> 
 
       </p:inputText> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="Group"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText id="qgrp" value="#{p.groupClass}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:autoComplete forceSelection="false" var="group" 
 
           itemLabel="#{group}" itemValue="#{group}" 
 
           value="#{p.groupClass}" 
 
           completeMethod="#{viewOrder.completeQqcGroup}"> 
 
        <f:facet name="itemtip"> 
 
         <h:outputText value="#{group}" /> 
 
        </f:facet> 
 
       </p:autoComplete> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="Item Cost"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText value="#{p.purCost}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputText readonly="#{p.withCode==1}" 
 
          onkeypress="var key = window.event ? event.keyCode : event.which; if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39) return true; else if (key & lt; 48 || key & gt; 57) return false;" 
 
          value="#{p.purCost}" /> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column headerText="Quantity"> 
 
     <p:cellEditor> 
 
      <f:facet name="output"> 
 
       <h:outputText value="#{p.qtyItem}" /> 
 
      </f:facet> 
 
      <f:facet name="input"> 
 
       <p:inputText 
 
        onkeypress="var key = window.event ? event.keyCode : event.which; if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39) return true; else if (key & lt; 48 || key & gt; 57) return false;" 
 
        value="#{p.qtyItem}" /> 
 
      </f:facet> 
 
     </p:cellEditor> 
 
    </p:column> 
 
    <p:column style="width:32px;text-align: center" 
 
       headerText="Image"> 
 
     <p:commandButton update="form:cpsDetail" 
 
         oncomplete="PF('cpsinfo').show()" icon="ui-icon-image" 
 
         title="View Image"> 
 
      <f:setPropertyActionListener value="#{p}" 
 
             target="#{viewOrder.selectedItem}" /> 
 
     </p:commandButton> 
 
    </p:column> 
 
    <p:column style="width:32px;text-align: center" 
 
       headerText="Replace"> 
 
     <p:commandButton rendered="#{viewOrder.readonly==false}" 
 
         update="form:rrepotbl" icon="ui-icon-refresh" 
 
         widgetVar="rplbtn" title="Replace Item" 
 
         oncomplete="PF('rdlg').show();"> 
 
      <f:setPropertyActionListener value="#{p}" 
 
             target="#{viewOrder.replaceItem}" /> 
 
     </p:commandButton> 
 
    </p:column> 
 
    <p:column style="width:32px;text-align: center" 
 
       headerText="Replace by Menu"> 
 
     <p:commandButton rendered="#{viewOrder.readonly==false}" 
 
         update="form:rMrepotbl" icon="ui-icon-refresh" 
 
         widgetVar="rplbtn" title="Replace Item" 
 
         oncomplete="PF('rMdlg').show();"> 
 
      <f:setPropertyActionListener value="#{p}" 
 
             target="#{viewOrder.replaceItem}" /> 
 
     </p:commandButton> 
 
    </p:column> 
 
    <p:column style="width:32px;text-align: center" 
 
       headerText="Delete"> 
 
     <p:commandButton rendered="#{viewOrder.readonly==false}" 
 
         update="form:items" action="#{viewOrder.delete}" 
 
         icon="ui-icon-close" title="Delete Item"> 
 
      <f:setPropertyActionListener value="#{p}" 
 
             target="#{viewOrder.selectedItem}" /> 
 
     </p:commandButton> 
 
    </p:column> 
 
</p:dataTable>

public void addNewItem() { 
     OpNonMenu item = new OpNonMenu(); 
     item.setDblDate(order.getDblDate()); 
     item.setFlightNoD(order.getFltNoD()); 
     item.setCustomerCode(cust.getCode()); 
     item.setMainSbdCode(order.getMainSbdCode()); 
     item.setSalesEditBy(log.getUserId()); 
     item.setSalesEditDate(order.getEditDate()); 

     item.setSerial(order.getOpNonMenus().size() + 1); 
     item.setEditBy(order.getEditBy()); 
     item.setEditDate(order.getEditDate()); 
     item.setClassCode(""); 
     item.setWithCode(0); 
     item.setItemCode("@FLP"); 
     item.setItemType("S"); 
     order.addOpNonMenu(item); 
    } 
+0

können Sie Ihre ManagedBean und Ihre Funktion zum Einfügen von Elementen buchen? –

+0

setzen Sie diese Funktion zwischen try {} catch (Exception e) {} und zeigen Sie uns den Fehler –

Antwort

0

I habe das Problem der Null-Zeiger-Ausnahme gelöst, indem ich die Eigenschaft max count in standalone.xml in JBOSS se erhöht habe rver

<system-properties> 
     <property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="10000"/> 
</system-properties> 

aber immer noch die Leistung wird schlechter, nachdem keine der Reihen zu erhöhen.