Erro no JSF

3 respostas
lucasbemo

Olá pessoal,

Estou com uma grande dificuldade e rodar minha primeira aplicação que estou desenvolvendo com as tecnologias: JSF, Hibernate, Apache Tomcat.

Abaixo esta o erro(ocorre quando eu estou na página “http://localhost:8080/AppJsf_sistemaFinanceiro/menu.faces” e clico no link “Cadastro de contas” que deve me direcionar para a página “http://localhost:8080/AppJsf_sistemaFinanceiro/contas/cadastroConta.faces”) e também os códigos que eu acho que deve estar com erro:

Erro

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /contas/cadastroConta.jsp(38,7) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type appjsf_sistemafinanceiro.visao.CadastroContaBean
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)

root cause

org.apache.jasper.el.JspELException: /contas/cadastroConta.jsp(38,7) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type appjsf_sistemafinanceiro.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.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)

root cause

java.lang.NoClassDefFoundError: Could not initialize class appjsf_sistemafinanceiro.util.HibernateUtil
	appjsf_sistemafinanceiro.negocio.PessoaService.listarTodas(PessoaService.java:28)
	appjsf_sistemafinanceiro.visao.CadastroContaBean.getPessoas(CadastroContaBean.java:64)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
	com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
	com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	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.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)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.

menu.jsp

<%@ page language="java" 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"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<link rel="stylesheet" type="text/css" href="../css/estilo.css" />
		
		<title>Sistema Financeiro</title>
	</head>
	<body>
		<f:view>
			<h:form id="frm">
				<h1>
					<h:outputText value="Sistema Financeiro"/>
				</h1>
				<h:commandLink action="#{cadastroContaBean.inicializar}">
					<h:outputText value="Cadastro de contas"/>
				</h:commandLink>
				<br/>
				&lt;h:commandLink action="consultaConta" actionListener="#{consultaContaBean.consultar}"&gt;
					&lt;h:outputText value="Consulta de contas"/&gt;
				&lt;/h:commandLink&gt;
			&lt;/h:form&gt;
		&lt;/f:view&gt;
	&lt;/body&gt;
&lt;/html&gt;

cadastroConta.jsp

&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%&gt;
&lt;%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%&gt;
&lt;%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%&gt;

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;

&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
		&lt;title&gt;Insert title here&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;f:view&gt;
			&lt;h:form id="frm"&gt;
			&lt;h1&gt;
				&lt;h:outputText value="Cadastro de conta"/&gt;
			&lt;/h1&gt;
			
			&lt;h:messages layout="table" showSummary="true" showDetail="false" 
				globalOnly="true" styleClass="msgErro" infoClass="msgInfo" style="font-weight: bold"/&gt;
			
			&lt;h:panelGrid columns="2"&gt;
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Codigo: " rendered="#{cadastroContaBean.contaEdicao.id != null}"/&gt;
				
					&lt;h:panelGroup rendered="#{cadastroContaBean.contaEdicao.id != null}"&gt; 
						&lt;h:inputText id="codigo" size="10" value="#{cadastroContaBean.contaEdicao.id}" 
							label="Codigo da conta" disabled="true"/&gt;
						&lt;h:message for="codigo" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Pessoa:"/&gt;
					
					&lt;h:panelGroup&gt;
						&lt;h:selectOneMenu id="pessoa" value="#{cadastroContaBean.contaEdicao.pessoa}" label="Pessoa" required="true"&gt;
							&lt;f:selectItems value="#{cadastroContaBean.pessoas}"/&gt;
						&lt;/h:selectOneMenu&gt;
						&lt;h:message for="pessoa" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Tipo:"/&gt;
				
					&lt;h:panelGroup&gt;
						&lt;h:selectOneRadio id="tipo" value="#{cadastroContaBean.contaEdicao.tipo}" label="Tipo da conta" required="true"&gt;
							&lt;f:selectItems value="#{cadastroContaBean.tiposLancamentos}"/&gt;
						&lt;/h:selectOneRadio&gt;
						&lt;h:message for="tipo" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Descricao:"/&gt;
				
					&lt;h:panelGroup&gt;
						&lt;h:inputText id="descricao" size="40" maxlength="150" value="#{cadastroContaBean.contaEdicao.descricao}" 
							required="true" label="Descricao"/&gt;
						&lt;h:message for="descricao" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Valor:"/&gt;
				
					&lt;h:panelGroup&gt;
						&lt;h:inputText id="valor" size="12" maxlength="10" value="#{cadastroContaBean.contaEdicao.valor}" 
							required="true" label="Valor"&gt;
							&lt;f:convertNumber minFractionDigits="2"/&gt;
						&lt;/h:inputText&gt;
						&lt;h:message for="valor" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Data vencimento:"/&gt;
				
					&lt;h:panelGroup&gt;
						&lt;h:inputText id="dataVencimento" size="12" maxlength="10" 
							value="#{cadastroContaBean.contaEdicao.dataVencimento}" required="true" label="Data vencimento"&gt;
							&lt;f:convertDateTime pattern="dd/MM/yyyy"/&gt;
						&lt;/h:inputText&gt;
						&lt;h:message for="dataVencimento" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup&gt;
					&lt;h:outputLabel value="Data baixa:"/&gt;
				
					&lt;h:panelGroup&gt;
						&lt;h:inputText id="dataBaixa" size="12" maxlength="10" 
							value="#{cadastroContaBean.contaEdicao.dataBaixa}" label="Data baixa"&gt;
							&lt;f:convertDateTime pattern="dd/MM/yyyy"/&gt;
						&lt;/h:inputText&gt;
						&lt;h:message for="dataBaixa" showSummary="true" showDetail="false" styleClass="msgErro"/&gt;
					&lt;/h:panelGroup&gt;
				&lt;/h:panelGroup&gt;
				<br />
				&lt;h:panelGroup/&gt;
				&lt;h:panelGroup&gt;
					&lt;h:commandButton value="Salvar" actionListener="#{cadastroContaBean.salvar}" styleClass="botao"/&gt;
					&lt;h:commandButton value="Cancelar" action="menu" immediate="true" styleClass="botao"/&gt;
				&lt;/h:panelGroup&gt;
				
			&lt;/h:panelGrid&gt;
			&lt;/h:form&gt;
		&lt;/f:view&gt;
	&lt;/body&gt;
&lt;/html&gt;

CadastroContaBean.java

package appjsf_sistemafinanceiro.visao;

import java.util.*;

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

import appjsf_sistemafinanceiro.dominio.Conta;
import appjsf_sistemafinanceiro.dominio.Pessoa;
import appjsf_sistemafinanceiro.dominio.TipoConta;
import appjsf_sistemafinanceiro.negocio.ContaService;
import appjsf_sistemafinanceiro.negocio.PessoaService;
import appjsf_sistemafinanceiro.negocio.RegraNegocioException;

public class CadastroContaBean {
	
	private Conta contaEdicao; 
	private List&lt;SelectItem&gt; tiposContas; 
	private List&lt;SelectItem&gt; 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&lt;SelectItem&gt; getPessoas() { 
		
		if (this.pessoas == null) {
			
			this.pessoas = new ArrayList&lt;SelectItem&gt;();
			
			List&lt;Pessoa&gt; 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&lt;SelectItem&gt; getTiposLancamentos() {
		
		if (this.tiposContas == null) {
			this.tiposContas = new ArrayList&lt;SelectItem&gt;();
			
			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;
	}
}

faces-config.xml

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 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_1_2.xsd"&gt;
 &lt;converter&gt;
  &lt;converter-for-class&gt;java.lang.Enum&lt;/converter-for-class&gt;
  &lt;converter-class&gt;appjsf_sistemafinanceiro.conversores.EnumConverter&lt;/converter-class&gt;
 &lt;/converter&gt;
 &lt;converter&gt;
  &lt;converter-for-class&gt;appjsf_sistemafinanceiro.dominio.Pessoa&lt;/converter-for-class&gt;
  &lt;converter-class&gt;appjsf_sistemafinanceiro.conversores.PessoaConverter&lt;/converter-class&gt;
 &lt;/converter&gt;
 &lt;managed-bean&gt;
  &lt;managed-bean-name&gt;cadastroContaBean&lt;/managed-bean-name&gt;
  &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.CadastroContaBean&lt;/managed-bean-class&gt;
  &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
 &lt;/managed-bean&gt;
 &lt;managed-bean&gt;
  &lt;managed-bean-name&gt;consultaContaBean&lt;/managed-bean-name&gt;
  &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.ConsultaContaBean&lt;/managed-bean-class&gt;
  &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
 &lt;/managed-bean&gt;
 &lt;navigation-rule&gt;
  &lt;navigation-case&gt;
   &lt;from-outcome&gt;cadastroConta&lt;/from-outcome&gt;
   &lt;to-view-id&gt;/contas/cadastroConta.faces&lt;/to-view-id&gt;
  &lt;/navigation-case&gt;
  &lt;navigation-case&gt;
   &lt;from-outcome&gt;consultaConta&lt;/from-outcome&gt;
   &lt;to-view-id&gt;/contas/consultaConta.faces&lt;/to-view-id&gt;
  &lt;/navigation-case&gt;
 &lt;/navigation-rule&gt;
 &lt;navigation-rule&gt;
  &lt;navigation-case&gt;
   &lt;from-outcome&gt;menu&lt;/from-outcome&gt;
   &lt;to-view-id&gt;/menu.jsp&lt;/to-view-id&gt;
   &lt;redirect/&gt;
  &lt;/navigation-case&gt;
 &lt;/navigation-rule&gt;
 &lt;navigation-rule&gt;
  &lt;navigation-case&gt;
   &lt;from-outcome&gt;menu&lt;/from-outcome&gt;
   &lt;to-view-id&gt;/menu.jsp&lt;/to-view-id&gt;
   &lt;redirect/&gt;
  &lt;/navigation-case&gt;
 &lt;/navigation-rule&gt;
 &lt;application&gt;
  &lt;message-bundle&gt;appjsf_sistemafinanceiro.recursos.messages&lt;/message-bundle&gt;
 &lt;/application&gt;
&lt;/faces-config&gt;

web.xml

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt;
  &lt;display-name&gt;AppJsf_sistemaFinanceiro&lt;/display-name&gt;
  &lt;welcome-file-list&gt;
    &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
    &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
    &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
  &lt;/welcome-file-list&gt;
  &lt;servlet&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.seam&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  &lt;context-param&gt;
    &lt;description&gt;State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2&lt;/description&gt;
    &lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
    &lt;param-value&gt;client&lt;/param-value&gt;
  &lt;/context-param&gt;
  &lt;context-param&gt;
    &lt;param-name&gt;javax.servlet.jsp.jstl.fmt.localizationContext&lt;/param-name&gt;
    &lt;param-value&gt;resources.application&lt;/param-value&gt;
  &lt;/context-param&gt;
  &lt;listener&gt;
    &lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt;
  &lt;/listener&gt; 
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
&lt;/web-app&gt;

Já estou a um bom tempo procurando uma solucão mas não consigo encontrar.
Se alguém tiver alguma ideia pra meu problema e postar aqui eu agradeço.

3 Respostas

kiq095

VC esta iniciando o Tomcat ???

e vc ja importou todas as bibliotecas do Tomcat pra seu projeto ???

vc ta usando o Netbeans ou eclipse ???

carlos_hen

Kara… Ta faltando um converter no seu selectOneMenu.

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

Um exemplo que pode te ajudar…

http://www.rponte.com.br/2008/07/26/entity-converters-pra-da-e-vender/

lucasbemo

Sim, meu tomcat esta no ar, eu fiz o deploy da minha aplicação utlizado o arquivo .war

Sim, minhas libs são:

Estou usando o JBoss Developer Studio.


calor_hen eu tenho aqui no meu projeto o converter para a pessoa, então acho que eu não especifiquei no selectOneMenu né ?
Valeu pela dica do link que você me passou, vou olhar lá.

PessoaConverter.java

package appjsf_sistemafinanceiro.conversores;

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

import appjsf_sistemafinanceiro.dominio.Pessoa;
import appjsf_sistemafinanceiro.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();
	}
}
Criado 3 de março de 2011
Ultima resposta 3 de mar. de 2011
Respostas 3
Participantes 3