2014-06-06 73 views
-2

我的應用程序使用JSF2 primefaces5和春天,我嘗試實現一個懶datatabe, 我收到以下錯誤,當我選擇在慵懶的數據表中的一行:如何解決java.lang.NullPointerException?

Avertissement: java.lang.NullPointerException 
javax.el.ELException: java.lang.NullPointerException 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:238) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processCustomListener(AjaxBehaviorListenerImpl.java:87) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:72) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:56) 
    at org.primefaces.event.SelectEvent.processListener(SelectEvent.java:40) 
    at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:98) 
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:764) 
    at javax.faces.component.UIData.broadcast(UIData.java:890) 
    at javax.faces.component.UIData.broadcast(UIData.java:912) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at com.gestion.projet.web.jsf.Lazy.onRowSelect(Lazy.java:68) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:234) 
    ... 38 more 

javax.faces.FacesException: java.lang.NullPointerException 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:85) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: javax.el.ELException: java.lang.NullPointerException 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:238) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processCustomListener(AjaxBehaviorListenerImpl.java:87) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:72) 
    at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:56) 
    at org.primefaces.event.SelectEvent.processListener(SelectEvent.java:40) 
    at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:98) 
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:764) 
    at javax.faces.component.UIData.broadcast(UIData.java:890) 
    at javax.faces.component.UIData.broadcast(UIData.java:912) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77) 
    ... 26 more 
Caused by: java.lang.NullPointerException 
    at com.gestion.projet.web.jsf.Lazy.onRowSelect(Lazy.java:68) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:234) 
    ... 38 more 

,然後與相關的代碼以下豆方法:

@ManagedBean(name="lazyBean") 
    @ViewScoped 
    public class Lazy extends LazyDataModel<Projet> { 
public void onRowSelect(SelectEvent event) { 
      FacesMessage msg = new FacesMessage("Projet Selected", ((Projet) event.getObject()).getIdprojet().toString()); 
      FacesContext.getCurrentInstance().addMessage(null, msg); 
     } 

這XHTML頁面:

<h:form id="form"> 
      <p:dataTable var="current" value="#{ProjetComponent.lazyModel}" 
       paginator="true" rows="10" 
       paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
       rowsPerPageTemplate="5,10,15" selectionMode="single" 
       selection="#{ProjetComponent.projet}" id="projetTable" lazy="true"> 
       <p:ajax event="rowSelect" listener="#{ProjetComponent.onRowSelect}" 
        update=":form:projetDetail" oncomplete="PF('projetDialog').show()" /> 
       <p:column headerText="Id" sortBy="#{current.idprojet}" filterBy="#{current.idprojet}"> 
        <h:outputText value="#{current.idprojet}" /> 
       </p:column> 
       <p:column headerText="Nom" sortBy="#{current.nomprojet}" 
        filterBy="#{current.nomprojet}"> 
        <h:outputText value="#{current.nomprojet}" /> 
       </p:column> 

      </p:dataTable> 

      <p:dialog header="Projet Detail" widgetVar="projetDialog" modal="true" 
       showEffect="fade" hideEffect="fade" resizable="false"> 
       <p:outputPanel id="projetDetail" style="text-align:center;"> 
        <p:panelGrid columns="2" 
         rendered="#{not empty ProjetComponent.projet}" 
         columnClasses="label,value"> 
         <f:facet name="header"> 

         </f:facet> 

         <h:outputText value="Id:" /> 
         <h:outputText value="#{ProjetComponent.projet.idprojet}" /> 

         <h:outputText value="Nom:" /> 
         <h:outputText value="#{ProjetComponent.projet.nomprojet}" /> 

        </p:panelGrid> 
       </p:outputPanel> 
      </p:dialog> 
     </h:form> 
+0

可能重複[什麼是一個NullReferenceException,如何解決呢?(http://stackoverflow.com/questions/4660142/what -is-a-nullreferenceexception-how-do-i-fix-it) – Filburt

回答

-2

基於你[R堆棧跟蹤,

at com.gestion.projet.web.jsf.Lazy.onRowSelect(Lazy.java:68)

我想,行68 FacesMessage msg = new FacesMessage("Projet Selected", ((Projet) event.getObject()).getIdprojet().toString());

所以好像SelectEvent event,你的參數爲空,請檢查您ARA傳遞什麼這種方法並添加一個if語句:

public void onRowSelect(SelectEvent event) { 
    if (event != null){ 
     FacesMessage msg = new FacesMessage("Projet Selected", ((Projet) event.getObject()).getIdprojet().toString()); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 
    } 
} 

你應該閱讀What is a NullReferenceException, and how do I fix it?

+0

我有同樣的問題 –

+0

第68行是什麼? – elbaulp

+0

這是第68行:FacesMessage msg = new FacesMessage(「Projet Selected」,((Projet)event.getObject())。getIdprojet()。toString()); –

-1

您的概率LEM是這樣梅索德返回NULL

@Override 
    public Projet getRowData(String rowKey) { 
     for(Projet projet : datasource) { 
      if(projet.getIdprojet().equals(rowKey)) 
       return projet; 
     } 

     return null; 
    } 

刪除,並嘗試

+0

但getRowData必須有返回語句 –

+0

刪除所有的方法getRowData –

相關問題