Problema com JSF... (erro no .jsp)

Ta o eclipse ta acusando erro no meu jsp mais eu não sei o motivo…
Meu jsp é esse.

[code]<%@ page contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@ taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>

Cadastro de conta

[/code]

Minha classe:

[code]package com.algaworks.dwjsf.financeiro.visao;

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

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import com.algaworks.dwjsf.financeiro.dominio.Conta;
import com.algaworks.dwjsf.financeiro.dominio.Pessoa;
import com.algaworks.dwjsf.financeiro.dominio.TipoConta;
import com.algaworks.dwjsf.financeiro.negocio.ContaService;
import com.algaworks.dwjsf.financeiro.negocio.PessoaService;
import com.algaworks.dwjsf.financeiro.negocio.RegraNegocioException;

public class CadastroContaBean {
private Conta contaEdicao;
private List tiposContas;
private List pessoas;

public String inicializar() {
	this.contaEdicao = new Conta();
	this.tiposContas = null;
	this.pessoas = null;
	return "cadastroConta";
}

public void salvar(ActionEvent event) {
	FacesContext context = FacesContext.getCurrentInstance();
	try {
		new ContaService().salvar(this.contaEdicao);
		this.contaEdicao = new Conta();
		FacesMessage msg = new FacesMessage("Conta salva com sucesso!");
		msg.setSeverity(FacesMessage.SEVERITY_INFO);
		context.addMessage(null, msg);
	} catch (RegraNegocioException e) {
		context.addMessage(
				null,
				new FacesMessage(FacesMessage.SEVERITY_ERROR, e
						.getMessage(), e.getMessage()));
	} catch (Exception e) {
		e.printStackTrace();
		FacesMessage msg = new FacesMessage(
				"Erro inesperado ao salvar conta!");
		msg.setSeverity(FacesMessage.SEVERITY_ERROR);
		context.addMessage(null, msg);
	}
}

public List<SelectItem> getPessoas() {
	if (this.pessoas == null) {
		this.pessoas = new ArrayList<SelectItem>();
		List<Pessoa> pessoas = new PessoaService().listarTodas();
		this.pessoas.add(new SelectItem(null, "Selecione"));
		for (Pessoa pessoa : pessoas) {
			this.pessoas.add(new SelectItem(pessoa, pessoa.getNome()));
		}
	}
	return this.pessoas;
}

public List<SelectItem> getTiposLancamentos() {
	if (this.tiposContas == null) {
		this.tiposContas = new ArrayList<SelectItem>();
		for (TipoConta tipo : TipoConta.values()) {
			this.tiposContas.add(new SelectItem(tipo, tipo.toString()));
		}
	}
	return tiposContas;
}

public Conta getContaEdicao() {
	return contaEdicao;
}

public void setContaEdicao(Conta contaEdicao) {
	this.contaEdicao = contaEdicao;
}

}[/code]

Alguem sabe oq é o problema???
ps: o eclipse acusa erro na linha 32 do jsp

Obg

Execute em modo de debug, e veja onde o erro está sendo lançado. :wink:

O erro é esse:

SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! The element type "navigation-rule" must be terminated by the matching end-tag "</navigation-rule>". at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:214) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:200) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: org.xml.sax.SAXParseException: The element type "navigation-rule" must be terminated by the matching end-tag "</navigation-rule>". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1414) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1749) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) at com.sun.faces.config.ConfigManager$ParseTask.getDocument(ConfigManager.java:445) at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:415) at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:372) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)

Ps: não sei usar bem o debug eu coloco o ponto na linha do erro?? Eu coloquei umas duas linhas depois…

O erro que postei acima já ajeitei… Fui mexer no faces-config.xml e esquecendo de fecha </ >, mais ja ta ok
O erro agora é esse:

SEVERE: Servlet.service() for servlet Faces Servlet threw exception java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) at org.hibernate.cfg.AnnotationConfiguration.<clinit>(AnnotationConfiguration.java:56) at com.algaworks.dwjsf.financeiro.util.HibernateUtil.<clinit>(HibernateUtil.java:11) at com.algaworks.dwjsf.financeiro.negocio.PessoaService.listarTodas(PessoaService.java:24) at com.algaworks.dwjsf.financeiro.visao.CadastroContaBean.getPessoas(CadastroContaBean.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javax.el.BeanELResolver.getValue(BeanELResolver.java:83) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173) at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200) at org.apache.el.parser.AstValue.getValue(AstValue.java:123) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101) at javax.faces.component.UISelectItems.getValue(UISelectItems.java:141) at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:283) at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:783) at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:864) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:244) at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:236) at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180) at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) 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:291) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)

Faltando jar do Apache Commons Logging. Da uma olhada nas libs do seu projeto.

Eu coloquei todos os jars que tem na apotila ta tudo igual ate as versões, mais a apostila pode está com erro ( super comum…) sabe que é o nome desse jar???

Eu coloque o commons-logging-1.1.1.jar
e o erro mudo agora é:

org.apache.jasper.el.JspELException: /contas/cadastroConta.jsp(34,6) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type com.algaworks.dwjsf.financeiro.visao.CadastroContaBean
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
	javax.faces.component.UISelectItems.getValue(UISelectItems.java:141)
	com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:283)
	com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:783)
	com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:864)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:244)
	com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:236)
	com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180)
	com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

[quote=xandi_m5]Eu coloque o commons-logging-1.1.1.jar
e o erro mudo agora é:

org.apache.jasper.el.JspELException: /contas/cadastroConta.jsp(34,6) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type com.algaworks.dwjsf.financeiro.visao.CadastroContaBean org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107) javax.faces.component.UISelectItems.getValue(UISelectItems.java:141) com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:283) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:783) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:864) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:244) com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:236) com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180) com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) [/quote]

Você está utilizando uma classe sua em uma combo (select)? É isso?

Se for, você irá precisar ter um converter. Nesse post eu mostro como fazer: JSF: Converter e Bean Auto Complete.

troca a extensão de .jsp para .xhtml

O erro que está acontecendo agora é pela falta de um converter. Sugiro dar uma estudada melhor nesses exemplos que vc está tentando fazer.

[quote=jakefrog][quote=xandi_m5]Eu coloque o commons-logging-1.1.1.jar
e o erro mudo agora é:

org.apache.jasper.el.JspELException: /contas/cadastroConta.jsp(34,6) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type com.algaworks.dwjsf.financeiro.visao.CadastroContaBean org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107) javax.faces.component.UISelectItems.getValue(UISelectItems.java:141) com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:283) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:783) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:864) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:244) com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:236) com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180) com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) [/quote]

Você está utilizando uma classe sua em uma combo (select)? É isso?

Se for, você irá precisar ter um converter. Nesse post eu mostro como fazer: JSF: Converter e Bean Auto Complete.[/quote]

Eu ja tenho um:

[code]package com.algaworks.dwjsf.financeiro.conversores;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

import com.algaworks.dwjsf.financeiro.dominio.Pessoa;
import com.algaworks.dwjsf.financeiro.negocio.PessoaService;

public class PessoaConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component,
String value) throws ConverterException {
if (value == null) {
return null;
}
return new PessoaService().pesquisarPorId(Long.parseLong(value));
}

public String getAsString(FacesContext context, UIComponent component,
		Object object) throws ConverterException {
	if (object == null) {
		return null;
	}
	Pessoa pessoa = (Pessoa) object;
	return pessoa.getId().toString();
}

}[/code]

No meu faces-config.xml:
O eclipse acusa erro ak:

<converter> <converter-for-class>java.lang.Enum</converter-for-class> <converter-class>com.algaworks.dwjsf.financeiro.conversores.EnumConverter</converter-class> </converter>
Diz o seguinte: Class java.lang.Enum must be concrete (not abstract)
Pode ser por causa disso o problema?? Como resolvo??
ps: só vi isso agora… :confused:
Obg

Vc ta colocando qual enum no seu select one?

Pq lá não tinha nenhum.

Você precisa registrar a sua classe e o converter dela. No caso o que está registrado no seu faces é a classe java.lang.Enum (aqui deve ser sua classe pessoa) e a classe do converter, que deveria ser essa que vc postou, se estiver correta ( não parei para olhar seu código).
Novamente dou a dica de estudar direito o material, a impressão que dá é que você não leu ( ou entendeu ) como funciona o material e já está tentando implementar algo.

[quote=jaziel.rc]Você precisa registrar a sua classe e o converter dela. No caso o que está registrado no seu faces é a classe java.lang.Enum (aqui deve ser sua classe pessoa) e a classe do converter, que deveria ser essa que vc postou, se estiver correta ( não parei para olhar seu código).
Novamente dou a dica de estudar direito o material, a impressão que dá é que você não leu ( ou entendeu ) como funciona o material e já está tentando implementar algo.[/quote]

Eu já tinha registrado a classe pessoas e seu converter, eu postei só a parte do erro… ;;

Eu li tudo, entendi umas coisas e e outras não…

To tentando fazer a atividade para mim tentar entender a base de problemas… Eu fiz boa parte sem olhar, mais deu erro tentei corrigir e nada. Ai copiei e colei e outro erro… que é esse que eu to mostrando…

Meu faces-config.xml completo:

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

<managed-bean>
	<managed-bean-name>cadastroContaBean</managed-bean-name>
	<managed-bean-class>
		com.algaworks.dwjsf.financeiro.visao.CadastroContaBean</managed-bean-class>
	<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
	<managed-bean-name>consultaContaBean</managed-bean-name>
	<managed-bean-class>
		com.algaworks.dwjsf.financeiro.visao.ConsultaContaBean</managed-bean-class>
	<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
	<navigation-case>
		<from-outcome>cadastroConta</from-outcome>
		<to-view-id>/contas/cadastroConta.jsp</to-view-id>
	</navigation-case>
	<navigation-case>
		<from-outcome>consultaConta</from-outcome>
		<to-view-id>/contas/consultaConta.jsp</to-view-id>
	</navigation-case>
</navigation-rule>
<navigation-rule>
	<navigation-case>
		<from-outcome>menu</from-outcome>
		<to-view-id>/menu.jsp</to-view-id>
		<redirect />
	</navigation-case>
</navigation-rule>
<converter>
	<converter-for-class>java.lang.Enum</converter-for-class>
	<converter-class>com.algaworks.dwjsf.financeiro.conversores.EnumConverter</converter-class>
</converter>
<converter>
	<converter-for-class>com.algaworks.dwjsf.financeiro.dominio.Pessoa</converter-for-class>
	<converter-class>
		com.algaworks.dwjsf.financeiro.conversores.PessoaConverter</converter-class>
</converter>

[/code]

Vc está utilizando JSF 2.0?

Se sim. Enum não precisa de converter (se não me engano).

[quote=jakefrog]Vc está utilizando JSF 2.0?

Se sim. Enum não precisa de converter (se não me engano).[/quote]
Estou sim!
E como eu faço?

Na apostila diz isso:
Toda enumeração herda implicitamente da classe Enum. Para deixar nosso
conversor genérico e pronto para qualquer enumeração que possa surgir no futuro em nosso
projeto, registramo-lo para o tipo genérico java.lang.Enum no arquivo “faces-config.xml”.

<converter> <converter-for-class>java.lang.Enum</converter-for-class> <converter-class>com.algaworks.dwjsf.financeiro.conversores.EnumConverter</converter-class> </converter>

Faz o seguinte, apaga essa linha do xml, onde vc declara o converter e vai usando e veja c vai dar pau em algum selectOne que tenha um enum (não classe normal, apenas enum).

Eu fiz isso, o selectOne (pessoa) continua com erro…
O erro tb é esse:

(Phase ID: RENDER_RESPONSE 6, View ID: /contas/cadastroConta.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@c1b161] 28/11/2011 16:00:40 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet Faces Servlet threw exception org.hibernate.MappingException: Could not determine type for: com.algaworks.dwjsf.financeiro.dominio.Pessoa, at table: conta, for columns: [org.hibernate.mapping.Column(nome)]

Coloca aí apenas o código do seu select. Como está agora.

Ta aki:

<h:selectOneMenu id="pessoa" value="#{cadastroContaBean.contaEdicao.pessoa}" label="Pessoa" required="true"> <f:selectItems value="#{cadastroContaBean.pessoas}" /> </h:selectOneMenu>