[org.ajax4jsf.webapp.BaseXMLFilter] - Exception in the filter chain
horrikhalid Dec 28, 2010 9:13 AMHi every one,
what I want ?
I have two comboBox one for hospitals and second for services in every hospital, I want to load services in the second combo when I choose one hospital, just now things are OK
BUT when I submit the form I get this exception ERROR [org.ajax4jsf.webapp.BaseXMLFilter] - Exception in the filter chain.
the full trace :
[2010-12-28 11:15:31,579] ERROR [org.ajax4jsf.webapp.BaseXMLFilter] - Exception in the filter chain javax.servlet.ServletException at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) 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:206) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) 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:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 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:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619) Caused by: java.util.NoSuchElementException at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130) at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:154) at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:61) at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:82) at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:144) at javax.faces.component.UIInput.validate(UIInput.java:875) at javax.faces.component.UIInput.executeValidate(UIInput.java:1072) at javax.faces.component.UIInput.processValidators(UIInput.java:672) at javax.faces.component.UIForm.processValidators(UIForm.java:234) at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:240) at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) ... 25 more
the bean:
/** * (C) Integradis Europe 28 déc. 2010 */ package ma.integradis.vmbackoffice.gestionMedecin.ui; import java.util.ArrayList; import java.util.List; import ma.integradis.vmbackoffice.gestionMedecin.Hopital; import ma.integradis.vmbackoffice.gestionMedecin.Service; import ma.integradis.vmbackoffice.gestionMedecin.crud.HopitalService; import ma.integradis.vmbackoffice.gestionMedecin.crud.ServiceService; import ma.integradis.vmbackoffice.util.BaseBean; /** * @author KHALID * */ public class TestBean extends BaseBean { /** * */ private static final long serialVersionUID = -4150116576271693518L; private List<Hopital> hospitals; private List<Service> services; private String hospital; private String service; private ServiceService serviceService; private HopitalService hopitalService; /** * @return the hospitals */ public List<Hopital> getHospitals() { try { return this.hospitals = this.hopitalService.readAll(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return this.hospitals; } /** * @param hospitals * the hospitals to set */ public void setHospitals(List<Hopital> hospitals) { this.hospitals = hospitals; } /** * @return the services */ public List<Service> getServices() { return this.services; } /** * @param services * the services to set */ public void setServices(List<Service> services) { this.services = services; } /** * @return the hospital */ public String getHospital() { return this.hospital; } /** * @param hospital * the hospital to set */ public void setHospital(String hospital) { Hopital hop; try { if (hospital != "") { hop = this.hopitalService.load(Integer.valueOf(hospital)); this.services = new ArrayList<Service>(hop.getServices()); } } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } this.hospital = hospital; } /** * @return the serviceService */ public ServiceService getServiceService() { return this.serviceService; } /** * @param serviceService * the serviceService to set */ public void setServiceService(ServiceService serviceService) { this.serviceService = serviceService; } /** * @return the hopitalService */ public HopitalService getHopitalService() { return this.hopitalService; } /** * @param hopitalService * the hopitalService to set */ public void setHopitalService(HopitalService hopitalService) { this.hopitalService = hopitalService; } /** * @return the service */ public String getService() { return this.service; } /** * @param service * the service to set */ public void setService(String service) { this.service = service; } public void save() { } }
Test.xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:c="http://java.sun.com/jstl/core"> <f:loadBundle basename="ressources.vmbackoffice" var="msg"/> <head> <title><ui:insert name="title"></ui:insert></title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <link href="../../styles/styles.css" rel="stylesheet" type="text/css"></link> </head> <body> <h:form id="vmbackoffice"> <table> <tr class="bg"> <td class="first"><strong><h:outputText value="#{msg.hospitallabel}"/> :</strong></td> <td class="last"> <select jsfc="h:selectOneMenu" id="hospital" value="#{testBean.hospital}" required="false" style="width: 150px;"> <t:selectItems value="#{testBean.hospitals}" var="hospital" itemLabel="#{hospital.designation}" itemValue="#{hospital.id}"/> <a4j:support event="onchange" reRender="service" ajaxSingle="true"/> </select> </td> </tr> <tr class="bg"> <td class="first"><strong><h:outputText value="#{msg.servicelabel}"/> :</strong></td> <td class="last"> <select jsfc="h:selectOneMenu" id="service" value="#{testBean.service}" required="false" style="width: 150px;"> <t:selectItems value="#{testBean.services}" var="service" itemLabel="#{service.designation}" itemValue="#{service.id}"/> </select> </td> </tr> <tr> <h:commandLink action="#{testBean.save}" rendered="true" ><h:outputText value="#{msg.save}"/></h:commandLink> </tr> </table> </h:form> </body> </ui:composition>
any help is appreciated