Olá pessoal em algumas paginas estou tendo problemas com relação a metodos não encontrados. No exemplo tenho um panelgrid com dois componentes de pesquisa em uma tabela, uma por pesquisa digitando uma palavra e outra com um combobox com opções de filtro. A segunda opção está funcionando perfeitamente, porem a pesquisa por inputText não. Os dois métodos estão na mesma classe de controle no mesmo Managed Bean, por isso não intendo porque um metodo ele reconhece o outro não. Tambpem notem que o método é chamado com um numero aleatório apos o nome da classe de controle como mostro no ultimo código ([email removido]()). Segue os códigos :
Pagina listarUsuarios.xhtml
<h:form id="formListarUsuarios">
<div class="opcoes">
<h:panelGrid rendered="#{AutenticaMB.usuario.nivel == 0}" columns="7">
<h:panelGroup>
<h:selectOneMenu value="#{UsuarioMB.filtro}" >
<f:selectItems value="#{UsuarioMB.comboFiltro}"/>
</h:selectOneMenu>
<h:commandLink styleClass="opButton">
<a4j:support event="onchange" action="#{UsuarioMB.listarUsuarios}" reRender="panelListaUsuarios" ajaxSingle="true"/>
<h:graphicImage value="/images/filter.jpg" />
<h:outputText value="Filtrar" />
</h:commandLink>
</h:panelGroup>
<h:panelGroup>
<h:inputText value="#{UsuarioMB.pesquisa}"/>
<h:commandLink styleClass="opButton">
<a4j:support event="onclick" action="#{UsuarioMB.listarUsuariosPesquisa}" reRender="formListarUsuarios" ajaxSingle="true"/>
<h:graphicImage value="/images/find.jpg" />
<h:outputText value="Localizar" />
</h:commandLink>
</h:panelGroup>
</h:panelGrid>
</div>
</h:form>
Classe UsuarioControle
public class UsuarioControle extends Controle {
private Usuario usuario;
private UsuarioDAO dao;
private Usuario usuarioLogado = (Usuario) WebContext.getSessionAttribute("usuario");
private HtmlDataTable tableUsuario; //Pode usar tambem data model é um tipo diferente mais faz a mesma coisa
private int filtro;
private String pesquisa;
//Getters e setters
/**
* Lista todos os Usuarios do banco de dados
*
* @return lista
*/
public List<Usuario> getListarUsuarios() throws NamingException, SQLException {
abrirConexao();
String filtroSQL = selecionaFiltro(filtro);
List lista = dao.listar(filtroSQL);
fecharConexao();
limparUsuario();
return lista;
}
/**
* Lista todos os Usuarios do banco de dados
*
* @return lista
*/
public List<Usuario> getListarUsuariosPesquisa() throws NamingException, SQLException {
abrirConexao();
List lista = dao.listarPesquisa(this.getPesquisa());
fecharConexao();
limparUsuario();
return lista;
}
Faces-config:
<managed-bean>
<managed-bean-name>UsuarioMB</managed-bean-name>
<managed-bean-class>portalAdmin.controle.UsuarioControle</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Erro :
SEVERE: javax.el.MethodNotFoundException: /usuario/listarUsuarios.xhtml @38,153 action="#{UsuarioMB.listarUsuariosPesquisa}": Method not found: [email removido]()
javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: /usuario/listarUsuarios.xhtml @38,153 action="#{UsuarioMB.listarUsuariosPesquisa}": Method not found: [email removido]()
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:81)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at caixa.sc.portalAdmin.util.ExceptionHandler.processAction(ExceptionHandler.java:52)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
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:595)
Caused by: javax.el.MethodNotFoundException: /usuario/listarUsuarios.xhtml @38,153 action="#{UsuarioMB.listarUsuariosPesquisa}": Method not found: [email removido]()
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:72)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
... 30 more
A classe DAO não postei porque acredito que nao seja o problema pois está pareceido com o getListarUsuarios só trocando o paramentro filtro pela string da pesquisa.
Agradeço desde já qualquer ajuda.