1 pièce(s) jointe(s)
Caused by: java.lang.NullPointerException
Bonjour,
Je commences d'abord par m'excuser de sembler revenir sur les mêmes choses mais c'est comme ça quand on ne maitrise pas bien quelque chose, une fois que la config change un peu on ne se retrouve pas.
mon souci
j'ai une classe test
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
| @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:laplace-servlet.xml")
public class SpringAgentServiceTest {
@Autowired
private CutAgentService agentService;
@Autowired
private CutPosteService posteService;
@Test
public void testGetUserById() {
CutAgent agent = agentService.getAgentById("323465X");
Assert.assertNotNull(agent);
System.out.println(agent);
}
@Test
public void testUpdateUser() {
long timestamp = System.currentTimeMillis();
CutAgent agent = agentService.getAgentById("323465X");
agent.setAGT_NOM("Coulibaly");
agent.setAGT_PRENOM("Yaya");
agentService.updateAgent(agent);
CutAgent updatedUser = agentService.getAgentById("323465X");
Assert.assertEquals(agent.getAGT_NOM(), updatedUser.getAGT_NOM());
Assert.assertEquals(agent.getAGT_PRENOM(), updatedUser.getAGT_PRENOM());
}
@Test
public void testlistPoste() {
long timestamp = System.currentTimeMillis();
List<CutPoste> items = posteService.list();
for (CutPoste item : items) {
System.out.println(item.toString());
}
}
//For Example: If we want to get count of how many records got updated by an Update query we can use SqlSession as follows:
//int updatedRowCount = sqlSession.update("com.sivalabs.mybatisdemo.mappers.UserMapper.updateUser", agent);
} |
qui s’exécute sans soucis
Pièce jointe 225845
Quand je le fais dans un javabean là il y a problème
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
| <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- <import resource="classpath:/META-INFSyGACUTDB/jdbc-context.xml"/> -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<!-- <context:component-scan base-package="org.laplace" /> -->
<import resource="classpath:jdbc-context.xml" />
<!--
<context:component-scan base-package="org.laplace.service" />
<context:component-scan base-package="org.laplace.controller" />
<context:component-scan base-package="org.laplace.validator" />
-->
<!-- Application Message Bundle -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- <property name="basename" value="/WEB-INF/resources/messages.properties" /> -->
<property name="basename" value="/resources/messages.properties" />
<property name="cacheSeconds" value="3000" />
</bean>
<!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".xhtml"/>
</bean>
</beans> |
ou
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
| <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- <import resource="classpath:/META-INFSyGACUTDB/jdbc-context.xml"/> -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<!-- <context:component-scan base-package="org.laplace" /> -->
<import resource="classpath:jdbc-context.xml" />
<!--
<context:component-scan base-package="org.laplace.service" />
<context:component-scan base-package="org.laplace.controller" />
<context:component-scan base-package="org.laplace.validator" />
-->
<!-- Application Message Bundle -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- <property name="basename" value="/WEB-INF/resources/messages.properties" /> -->
<property name="basename" value="/resources/messages.properties" />
<property name="cacheSeconds" value="3000" />
</bean>
<!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".xhtml"/>
</bean>
<mvc:resources mapping="/resources/**" location="/resources/" cache-period="31556926"/>
</beans> |
methode 1
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
| import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.apache.taglibs.standard.lang.jstl.ELException;
import org.laplace.model.CutPoste;
import org.laplace.service.CutPosteService;
//import org.laplace.validator.PosteValidator;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;
import org.springframework.test.context.ContextConfiguration;
@ManagedBean(name = "poste")
@ViewScoped
public class PosteBean implements Serializable{
private CutPosteService itemService = new CutPosteService();
private CutPoste selectedItem = new CutPoste();
private List<CutPoste> items;
private Object bean;
private String property;
public CutPosteService getItemService() {
return itemService;
}
public void setItemService(CutPosteService itemService) {
this.itemService = itemService;
}
public CutPoste getSelectedItem() {
return selectedItem;
}
public void setSelectedItem(CutPoste selectedItem) {
this.selectedItem = selectedItem;
}
public void editAction(CutPoste item) {
selectedItem = item;
}
public List<CutPoste> getItems() {
items = itemService.list();
if (items == null ) {
System.out.println("items null");
}
else {
for (CutPoste item : items) {
System.out.println(item.toString());
}
}
return items;
}
public void setItems(List<CutPoste> items) {
this.items = items;
}
public void onRowSelect(SelectEvent event) { // ajout
System.out.println("Row selected Method");//FacesContext.getCurrentInstance().getExternalContext().redirect("page.xhtml?id=" +pat.getId());
FacesMessage msg = new FacesMessage("Item Selected", ((CutPoste) event.getObject()).getPC_CODE());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onRowUnselect(UnselectEvent event) {
FacesMessage msg = new FacesMessage("Item Unselected", ((CutPoste) event.getObject()).getPC_CODE());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
} |
methode 2
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
| import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.apache.taglibs.standard.lang.jstl.ELException;
import org.laplace.model.CutPoste;
import org.laplace.service.CutPosteService;
//import org.laplace.validator.PosteValidator;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;
import org.springframework.test.context.ContextConfiguration;
@ManagedBean(name = "poste")
@ViewScoped
@ContextConfiguration(locations="classpath:laplace-servlet.xml")
public class PosteBean implements Serializable{
private CutPosteService itemService = new CutPosteService();
private CutPoste selectedItem = new CutPoste();
private List<CutPoste> items;
private Object bean;
private String property;
public CutPosteService getItemService() {
return itemService;
}
public void setItemService(CutPosteService itemService) {
this.itemService = itemService;
}
public CutPoste getSelectedItem() {
return selectedItem;
}
public void setSelectedItem(CutPoste selectedItem) {
this.selectedItem = selectedItem;
}
public void editAction(CutPoste item) {
selectedItem = item;
}
public List<CutPoste> getItems() {
items = itemService.list();
if (items == null ) {
System.out.println("items null");
}
else {
for (CutPoste item : items) {
System.out.println(item.toString());
}
}
return items;
}
public void setItems(List<CutPoste> items) {
this.items = items;
}
public void onRowSelect(SelectEvent event) { // ajout
System.out.println("Row selected Method");//FacesContext.getCurrentInstance().getExternalContext().redirect("page.xhtml?id=" +pat.getId());
FacesMessage msg = new FacesMessage("Item Selected", ((CutPoste) event.getObject()).getPC_CODE());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onRowUnselect(UnselectEvent event) {
FacesMessage msg = new FacesMessage("Item Unselected", ((CutPoste) event.getObject()).getPC_CODE());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
} |
et dans les deux cas j'ai la même erreur
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| nov. 25, 2016 7:54:31 AM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/pages/poste.xhtml]
javax.el.ELException: /pages/poste.xhtml @25,66 value="#{poste.items}": Error reading 'items' on type org.laplace.controller.PosteBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
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:732)
at org.primefaces.component.api.UIData.getDataModel(UIData.java:764)
at javax.faces.component.UIData.getRowCount(UIData.java:356)
at org.primefaces.component.api.UIData.calculateFirst(UIData.java:215)
at org.primefaces.component.datatable.DataTableRenderer.preRender(DataTableRenderer.java:117)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:85)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1903)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1896)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1899)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1899)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:451)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.ELException: Error reading 'items'@25,66 value="#{poste.items}": Error reading 'items' on type org.laplace.controller.PosteBean
nov. 25, 2016 7:54:31 AM com.sun.faces.context.ExceptionHandlerImpl log
1100: /pages/poste.xhtml @25,66 value="#{poste.items}": Error reading 'items' on type org.laplace.controller.PosteBean
javax.el.ELException: /pages/poste.xhtml @25,66 value="#{poste.items}": Error reading 'items' on type org.laplace.controller.PosteBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
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:732)
at org.primefaces.component.api.UIData.getDataModel(UIData.java:764)
at javax.faces.component.UIData.getRowCount(UIData.java:356)
at org.primefaces.component.api.UIData.calculateFirst(UIData.java:215)
at org.primefaces.component.datatable.DataTableRenderer.preRender(DataTableRenderer.java:117)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:85)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1903)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1896)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1899)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1899)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:451)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.ELException: Error reading 'items' on type org.laplace.controller.PosteBean
at javax.el.BeanELResolver.getValue(BeanELResolver.java:101)
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:184)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
... 42 more
Caused by: java.lang.NullPointerException
at org.laplace.service.CutPosteService.list(CutPosteService.java:51)
at org.laplace.controller.PosteBean.getItems(PosteBean.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
... 47 more |