Erro no JSF com hibernate

3 respostas
I

fala pessoal, estou com uma dúvida que eu não consigo resolver, peguei uma apostila de um curso na internet para estudar JSF, eu fui seguindo passo a passo, mas a tela menu, que tem dois botões, reclama quando eu clico no botão para consultar os objetos.

vou colocar o erro e algumas partes do código, se alguem puder me ajudar fico muito grato.

página menu.jsp

<f:view>
<h:form id=“frm”>

<h:outputText value=“Sistema Financeiro” />

<h:commandLink action="#{cadastroContaBean.inicializar}" >
		<h:outputText value="Cadastro de contas" />
	</h:commandLink> <br/>
	
	<h:commandLink action="consultaConta" actionListener="#{consultaContaBean.consultar}" >
		<h:outputText value="Consulta de contas" />
	</h:commandLink> <br/>		
</h:form>

</f:view>


ao invocar o actionListenter no método consultar do bean, ele deveria me retornar uma tela com uma lista, mas ele mostra esse erro aqui dizendo como se o método no managedbean não existisse.

[color=red]RAVE: Received org.apache.jasper.el.JspMethodNotFoundException when invoking action listener ‘#{consultaContaBean.consultar} for component j_id_jsp_1441969169_5

03/03/2011 11:51:42 javax.faces.event.MethodExpressionActionListener processAction

GRAVE: org.apache.jasper.el.JspMethodNotFoundException: /menu.jsp(21,2) ‘#{consultaContaBean.consultar} Method not found: [email removido](javax.faces.event.ActionEvent)[/color]

at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:71)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)

at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:774)

at javax.faces.component.UICommand.broadcast(UICommand.java:372)

at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)

at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

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.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:852)

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(Unknown Source)
03/03/2011 11:51:42 org.ajax4jsf.component.AjaxViewRoot processEvents

GRAVE: Error processing faces event for the component frm:j_id_jsp_1441969169_5

javax.faces.event.AbortProcessingException: /menu.jsp(21,2) ‘#{consultaContaBean.consultar} Method not found: [email removido](javax.faces.event.ActionEvent)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:118)

at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:774)

at javax.faces.component.UICommand.broadcast(UICommand.java:372)

at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)

at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

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.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:852)

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(Unknown Source)

Caused by: org.apache.jasper.el.JspMethodNotFoundException: /menu.jsp(21,2) ‘#{consultaContaBean.consultar} Method not found: [email removido](javax.faces.event.ActionEvent)

at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:71)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)

 23 more

aqui está a parte do código do meu managedbean


public class ConsultaContaBean {

private Conta contaExclusao;
private List<Conta> contas = new ArrayList<Conta>();

public void consultar(ActionEvent event) {
	this.contas = new ContaService().listarTodas();
}

eu ainda tenho bastante dificuldade para manipular botões que tenham atributos do tipo listener, eu acho que pode ter haver com o fato de não ser apenas action.

Aguardo respostas e valew…
dele não ser simplesmente action

3 Respostas

R

Veja se o ActionEvent que vc importou realmente é o do pacote javax.faces.event

I

Fala raf4ever, importei esse pacote mesmo no meu managedbean.

O que mais vc acha que pode ser esse erro?

bobboyms

Ta ae sua solução!!!

Errado :

<h:commandLink action="#{cadastroContaBean.inicializar}" >

Correto :

<h:commandLink actionListener="#{cadastroContaBean.inicializar}" >

Explicação :

public void consultar(ActionEvent event) {}

Ele espera um evento e o mesmo é passado pela propriedade : actionListener
Caso queira executar somente uma ação você usa propriedade : action e o methodo dessa forma : public void consultar() {}

Criado 3 de março de 2011
Ultima resposta 20 de jul. de 2011
Respostas 3
Participantes 3