Olá a todos, depois de muita pesquisa, inclusive aqui no GUJ ainda não consegui resolver o reRender.
Segue a situação:
Tenho as tabelas:
Fabricante Chassi
Modelo Chassi
Fabricante Carroceria
Modelo Carroceria
Dai tem 4 selectOneMenu: Ambos estão dentro do mesmo form, porém separados por rich:tabPanel.
<h:outputLabel value="Fab.Chassi:" for="somFabChassiSelect"
id="oplChassi" />
<h:selectOneMenu id="somFabChassiSelect"
value="#{veiculoManaged.fabChassiSelecionado}"
valueChangeListener="#{veiculoManaged.filtraListaModeloChassi}">
<f:selectItem itemLabel="Selecione Fabricante Chassi..." />
<f:selectItems
value="#{fabricanteChassiManaged.fabricanteChassiSelect}" />
<a4j:support event="onchange" reRender="somModeloChassiSelect"
requestDelay="25" eventsQueue="settingsQueue"
similarityGroupingId="settings" />
</h:selectOneMenu>
<h:outputLabel value="Modelo Chassi:" for="somModeloChassiSelect"
id="oplModChassi" />
<h:selectOneMenu id="somModeloChassiSelect"
value="#{veiculoManaged.modChassiSelecionado}">
<f:selectItem itemLabel="Selecione Modelo Chassi..." />
<f:selectItems value="#{veiculoManaged.listaModeloChassi}" />
</h:selectOneMenu>
e
<h:outputLabel value="Fab.Carroceria:" for="somFabCarSelect"
id="oplFabCarSelect" />
<h:selectOneMenu id="somFabCarSelect"
value="#{veiculoManaged.fabCarroceriaSelecionado}"
valueChangeListener="#{veiculoManaged.filtraListaModeloCarroceria}">
<f:selectItem itemLabel="Selecione Fabricante Carroceria..." />
<f:selectItems
value="#{fabricanteCarroceriaManaged.fabricanteCarroceriaSelect}" />
<a4j:support event="onchange" reRender="somModelCarSelect"
requestDelay="25" eventsQueue="settingsQueue"
similarityGroupingId="settings" />
</h:selectOneMenu>
<h:outputLabel value="Modelo Carroceria:" for="somModelCarSelect"
id="oplModelCarSelect" />
<h:selectOneMenu id="somModelCarSelect"
value="#{veiculoManaged.modCarroceriaSelecionado}">
<f:selectItem itemLabel="Selecione Modelo Carroceria..." />
<f:selectItems value="#{veiculoManaged.listaModeloCarroceria}" />
</h:selectOneMenu>
e o bean:
...
private List<SelectItem> listaModeloChassi;
private List<SelectItem> listaModeloCarroceria;
public VeiculoManaged() {
...
this.listaModeloChassi = new ArrayList<SelectItem>();
this.listaModeloCarroceria = new ArrayList<SelectItem>();
...
}
...
public void setListaModeloChassi(List<SelectItem> listaModeloChassi) {
this.listaModeloChassi = listaModeloChassi;
}
public List<SelectItem> getListaModeloChassi() {
return listaModeloChassi;
}
...
public void filtraListaModeloChassi(ValueChangeEvent event) {
this.listaModeloChassi.clear();
try {
String id_fabChassi = (String) event.getNewValue();
if (id_fabChassi != null) {
Integer id_temp = new Integer(id_fabChassi);
for (ModeloChassi modeloChassi : mcfr.getEJB()
.findByFabricante(id_temp)) {
this.listaModeloChassi.add(new SelectItem(modeloChassi
.getId().toString(), modeloChassi.getDescricao()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
...
public List<SelectItem> getListaModeloCarroceria() {
return listaModeloCarroceria;
}
public void setListaModeloCarroceria(List<SelectItem> listaModeloCarroceria) {
this.listaModeloCarroceria = listaModeloCarroceria;
}
...
public void filtraListaModeloCarroceria(ValueChangeEvent event) {
this.listaModeloCarroceria.clear();
try {
String id_fabCarroceria = (String) event.getNewValue();
if (id_fabCarroceria != null) {
Integer id_temp = new Integer(id_fabCarroceria);
for (ModeloCarroceria modeloCarroceria : mrfr.getEJB()
.findByFabricante(id_temp)) {
this.listaModeloCarroceria.add(new SelectItem(
modeloCarroceria.getId().toString(),
modeloCarroceria.getDescricao()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Erro:
15:38:48,992 WARNING [lifecycle] java.util.NoSuchElementException
javax.faces.FacesException: java.util.NoSuchElementException
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:714)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
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)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.util.NoSuchElementException
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
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.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIInput.processValidators(UIInput.java:670)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
... 38 more
15:38:48,992 SEVERE [lifecycle] JSF1054: (Phase ID: PROCESS_VALIDATIONS 3, View ID: /sistema/veiculo.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@1a98cca]
15:38:48,992 ERROR [BaseXMLFilter] Exception in the filter chain
javax.servlet.ServletException: java.util.NoSuchElementException
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.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.FacesException: java.util.NoSuchElementException
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:714)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
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)
... 29 more
Caused by: java.util.NoSuchElementException
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
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.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIInput.processValidators(UIInput.java:670)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
... 38 more
15:38:48,992 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.util.NoSuchElementException
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
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.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at javax.faces.component.UIInput.processValidators(UIInput.java:670)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
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)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Ocorre que quando entro no form e seleciono o primeira vez, qualquer um dos Fabricantes, o sistema preenche corretamente o segundo combo.
Porém quando mudo ou passo para outro combo de Fabricante ele da erro:
java.util.NoSuchElementException
Agradeço qualquer ajuda.
Att.
Júnior Carvalho