Erreur "java.lang.NullPointerException" avec JSF
Bonjour chers membres,
je suis en developpement Java EE et j'ai une exception de type java.lang.NullPointerException dons voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| java.lang.NullPointerException
at project.service.ModelServiceImpl.getAllmodel(ModelServiceImpl.java:30)
at project.beans.ModelBean.getAllmodel(ModelBean.java:35)
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 javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIData.getValue(UIData.java:731)
at org.primefaces.component.datatable.DataTable.getValue(DataTable.java:867)
at org.primefaces.component.api.UIData.getDataModel(UIData.java:579)
at javax.faces.component.UIData.getRowCount(UIData.java:356)
at org.primefaces.component.api.UIData.calculateFirst(UIData.java:157)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:176)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:82)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:47)
at org.primefaces.extensions.component.layout.LayoutPaneRenderer.encodeBegin(LayoutPaneRenderer.java:148)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:820)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:56)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:47)
at org.primefaces.extensions.component.layout.LayoutPaneRenderer.encodeBegin(LayoutPaneRenderer.java:152)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:820)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
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:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Unknown Source) |
je constate que la methode getAllmodel() due l'implementation du DAO n'est pas executée.
voici la methode:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| package project.metier.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import project.metier.mouse.Model;
import project.metier.mouse.Vehicule;
import project.util.HibernateUtil;
@Repository("iModelHome")
public class ModelImpl implements IModelHome{
@Override
public void addModel(Model mod) {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(mod);
session.getTransaction().commit();
}
/*public List<Model> getAllmodel() {
Session session=HibernateUtil.getSessionFactory().openSession();
//Transaction transaction = session.beginTransaction();
try{
session.getTransaction().begin();
Query req=session.createQuery("select r from Model r");
return (req.list());
} catch (RuntimeException e) {
session.getTransaction().rollback();
throw e;
}
}*/
@Override
public Model getById(int idc) {
Session
session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Model tt=(Model) session.get(Model.class, idc);
return tt;
}
@Override
public List<Model> getByMarque(String mc) {
Session
session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query req=session.createQuery("select con from Model con where con.marque like :x");
req.setParameter("x","%"+mc+"%");
return req.list();
}
@Override
public Model getByType(Model m) {
Session
session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Model mod=(Model) session.get(Model.class, m);
return mod;
}
@Override
public void editBon(Model model, int idModel) {
// TODO Auto-generated method stub
}
@Override
public List<Model> getAllmodel() {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query req=session.createQuery("select m from Model m");
return req.list();
}
} |
le bean est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| package project.beans;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import project.metier.mouse.Model;
import project.service.ModelService;
@Component
@Scope
public class ModelBean {
private Model model;
private ModelService modelService;
public ModelBean() {
// TODO Auto-generated constructor stub
model= new Model();
}
public Model getModel() {
return model;
}
public void setModel(Model model) {
this.model = model;
}
public List<Model> getAllmodel(){
return modelService.getAllmodel();
}
public void addModel(){
modelService.addModel(model);
}
@Autowired
public void setModelService(ModelService modelService) {
this.modelService = modelService;
}
} |
le service:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| package project.service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import project.metier.dao.IModelHome;
import project.metier.mouse.Model;
@Service
@Transactional
public class ModelServiceImpl implements ModelService {
private IModelHome iModelHome;
public void setiModelHome(IModelHome iModelHome) {
this.iModelHome = iModelHome;
}
@Override
public void addModel(Model mod) {
iModelHome.addModel(mod);
}
@Override
public List<Model> getAllmodel(){
// TODO Auto-generated method stub
return iModelHome.getAllmodel();
}
@Override
public Model getById(int idc) {
// TODO Auto-generated method stub
return iModelHome.getById(idc);
}
@Override
public List<Model> getByMarque(String mc) {
// TODO Auto-generated method stub
return iModelHome.getByMarque(mc);
}
@Override
public Model getByType(Model m) {
// TODO Auto-generated method stub
return iModelHome.getByType(m);
}
public void editBon(Model model,int idModel){
iModelHome.editBon(model,idModel);
}
} |
enfin la page jsf
Citation:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/Views/Template/common.xhtml">
<ui:define name="Edition">
</ui:define>
<ui:define name="Consultation">
<p:dialog header="Ajout d'un model" widgetVar="modelAjout" resizable="true" id="editM" >
<p:growl id="growl" showDetail="true" sticky="false" />
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
<f:facet name="header">
<h:outputLabel value="bonjour"/>
</f:facet>
<h:outputLabel for="id" title="id" value="id:" style="color: crimson;" />
<h:inputText value="#{modelBean.model.idModel}" id="id" required="true" visible="false"/>
<h:outputLabel for="marque" value="Marque:" style="color: crimson;"/>
<h:inputText value="#{modelBean.model.marque}" id="marque" required="true"/>
<h:outputLabel for="type" title="type" value="Type:" style="color: crimson;"/>
<h:inputText value="#{modelBean.model.type}" id="type" required="true"/>
</h:panelGrid>
<p:separator/>
<p:commandButton value="Enregistrer" action="#{modelBean.addModel}" />
</p:dialog>
<h:form id="tbb">
<p:outputPanel>
<h:outputText value="Search:" style="Height:30px"/>
<p:inputText id="globalFilter" onkeyup="TypeCarburant.filter()" style="width:150px" />
</p:outputPanel>
<h:form id="AjoutM">
<p:commandButton value="Ajouter un model Vehicule" icon="ui-icon-adds" onclick="modelAjout.show()"/>
</h:form>
<p:dataTable id="dataTable" var="model" value="#{modelBean.allmodel}" sortMode="single" rows="5" paginator="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,15,25">
<p:column sortBy="#{model.idModel}" headerText="ID" >
<h:outputText value="#{model.idModel}" />
</p:column>
<p:column sortBy="#{model.marque}" headerText="Marque">
<h:outputText value="#{model.marque}" />
</p:column>
<p:column sortBy="#{model.type}" headerText="Model:">
<h:outputText value="#{model.type}" />
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
</html>
j'ai deux interfaces,interface DOA et interface service Service que voici
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
package project.service;
import java.util.List;
import project.metier.mouse.Model;
public interface ModelService {
public void addModel(Model mod);
public List<Model> getAllmodel();
public Model getById(int idc);
public List<Model> getByMarque(String mc);
public Model getByType(Model m);
}
//et l'interface du DAo ModelHome
package project.metier.dao;
import java.util.List;
import project.metier.mouse.Model;
public interface IModelHome {
public void addModel(Model mod);
public List<Model> getAllmodel();
public Model getById(int idc);
public List<Model> getByMarque(String mc);
public Model getByType(Model m);
public void editBon(Model model, int idModel);
} |
je ne comprends pas ou est que j'ai mal instancié un objet,est ce que quequ'un remarque quelque chose dans ce code?