[RESOLVIDO]Problema Managed Bean

Boa noite a todos,

Estou tentando listar um resultado retornado pelo banco de dados num SelectOneMenu (JSF) só que sempre que vou abrir a pagina JSP ele da um erro como se não estivese encontrando o método que eu estou chamando. Segue abaixo o erro junto com as classes utilizadas.

Erro:

GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/BI2_Project] threw exception [/inserir.jsp(51,14) '#{cidade.listarCidades}' Property 'listarCidades' not found on type Basicas.Cidade] with root cause
org.apache.jasper.el.JspPropertyNotFoundException: /inserir.jsp(51,14) '#{cidade.listarCidades}' Property 'listarCidades' not found on type Basicas.Cidade
	at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:109)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
	at javax.faces.component.UISelectItems.getValue(UISelectItems.java:129)
	at com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:202)
	at com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:762)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:844)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:298)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:432)
	at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:233)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Faces:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
    
    <navigation-rule>
    	<from-view-id>/inserir.jsp</from-view-id>
    	<navigation-case>
    		<from-outcome>sucess</from-outcome>
    		<to-view-id>/sucesso_insercao.jsp</to-view-id>
    	</navigation-case>
    	<navigation-case>
    		<from-outcome>failure</from-outcome>
    		<to-view-id>/falha_insercao.jsp</to-view-id>
    	</navigation-case>
    </navigation-rule>
      
    <managed-bean>
    	<managed-bean-name>cidade</managed-bean-name>
    	<managed-bean-class>Basicas.Cidade</managed-bean-class>
    	<managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
       
</faces-config>

Classe Cidade:

package Basicas;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import Repositorio.RepCidade;

public class Cidade {
	
	private int id;
	private String descricao;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	                        
	public List<SelectItem> listarCidades() {
		Cidade cidade = new Cidade();
		cidade.setId(0);
		cidade.setDescricao("");
		RepCidade rc = new RepCidade();
		List<Cidade> lista = new ArrayList<Cidade>(rc.buscar(cidade)); 	
		List<SelectItem> listaCombo = new ArrayList<SelectItem>();
		
		for (Cidade c : lista) {
			SelectItem si = new SelectItem();
			si.setValue(c.getId());
			si.setLabel(c.getDescricao());
			listaCombo.add(si);
		}		
		return listaCombo;
	}
	
	//Construtores
	public Cidade() {}
	public Cidade(int id, String descricao) {
		setId(id);
		setDescricao(descricao);
	}		
}

Trecho JSP:

<td>Cidade:</td>
 <td>
   <h:selectOneMenu>                  
      <f:selectItems value="#{cidade.listarCidades}"/>  
    </h:selectOneMenu>
 </td>  	
			

Estou utilizando o JSF, já tentei declarar o managed bean tanto pela anotations quanto pelo FacesConfig e nada de solucionar esse problema. Se alguem tiver como me ajudar ficaria muito agradecido.

Obrigado

altera de listarCidades para getListarCidades.

Puts cara, muito obrigado.
Agora você sabe me dizer porque ele só reconhece se eu colocar o get na frente ? Isso sempre foi assim ou começou apartir dessa versão 2.0 ?

Obrigado novamente.

[quote=strikezado]Puts cara, muito obrigado.
Agora você sabe me dizer porque ele só reconhece se eu colocar o get na frente ? Isso sempre foi assim ou começou apartir dessa versão 2.0 ?

Obrigado novamente.[/quote]

Se não me engano, ele sempre foi assim.

O padrão JavaBeans diz que você deve colocar get quando quer buscar alguma informação e set para alterar.

E os métodos indicam ações por isso que um método para alterar um cliente não precisa de get/set na frente do nome.