Jsf erro estranho!

Estou fazendo uma agenda em jsf, segue os fontes e a mensagem de erro para alguém detectar !

erro

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!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=UTF-8">

        <title>JSP Page</title>

    </head>

    <body>

        <% response.sendRedirect("mostrar.faces"); %>

    </body>

</html

><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!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=UTF-8">

        <title>Inserindo Novos Contatos</title>

    </head>

    <body>

        <h2>Adicionar Novo Contato</h2>

      <f:view>

      <h:form id="cadastro">

      <h:panelGrid columns="2">

      <h:outputText value="Nome:"/>

      <h:inputText size="25" id="nome" value="#{contatos.contato.nome}" />

      <h:outputText value="Endereço:"/>

     <h:inputText size="25" id="endereco" value="#{contatos.contato.endereco}"/>

      <h:outputText value="Bairro:"/>

      <h:inputText size="15" id="bairro" value="#{contatos.contato.bairro}"/>

      <h:outputText value="Cidade:"/>

      <h:inputText size="15" id="cidade" value="#{contatos.contato.cidade}" />

      <h:outputText value="Estado:"/>

      <h:inputText size="2" id="estado" value="#{contatos.contato.estado}" />

      <h:outputText value="CEP:"/>

      <h:inputText size="8" id="cep" value="#{contatos.contato.cep}" />

      <h:outputText value="Telefone:"/>

      <h:inputText size="15" id="telefone"     value="#{contatos.contato.telefone}"/>

      </h:panelGrid>

      <h:commandButton value="Cadastrar" action="#{contatos.create}" />

      <h:commandButton value="Limpar" type="reset" />

      <h:commandButton value="Cancelar" action="mostrar" />

            </h:form>

        </f:view>

    </body>

</html>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
    <f:view>

        <head>

         <f:loadBundle basename="br.com.nitewing.agenda.mensagens" var="msgs" />

            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

            <title><h:outputText value="#{msgs.Titulo}"/></title>

            <link rel="stylesheet" type="text/css" href="estilo.css">

        </head>

        <body>

            <h:form>

                <h3><h:outputText value="#{msgs.Titulo}"/></h3>

                <h:dataTable value="#{contatos.todos}" var="agenda"

                  border="0" headerClass="cabecalho"

                  rowClasses="linha1,linha2">

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Id}" />

                        </f:facet>

                        <h:outputText value="#{agenda.id}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Nome}" />

                        </f:facet>

                        <h:outputText value="#{agenda.nome}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Endereco}" />

                        </f:facet>

                        <h:outputText value="#{agenda.endereco}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Bairro}" />

                        </f:facet>

                        <h:outputText value="#{agenda.bairro}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Cidade}" />

                        </f:facet>

                        <h:outputText value="#{agenda.cidade}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Estado}" />

                        </f:facet>

                        <h:outputText value="#{agenda.estado}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Cep}" />

                        </f:facet>

                        <h:outputText value="#{agenda.cep}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="#{msgs.Telefone}" />

                        </f:facet>

                        <h:outputText value="#{agenda.telefone}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="Excluir" />

                        </f:facet>

                        <h:commandLink  value="Excluir" />

                    </h:column>

                </h:dataTable>

                <br />

           &lt;h:commandLink action="#{contatos.novoContato}"

            value="Novo Contato" /&gt;

            &lt;/h:form&gt;

        &lt;/body&gt;

    &lt;/f:view&gt;

&lt;/html&gt;

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;web-app version="2.5" 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-app_2_5.xsd"&gt;

    &lt;context-param&gt;

        &lt;param-name&gt;com.sun.faces.verifyObjects&lt;/param-name&gt;

        &lt;param-value&gt;false&lt;/param-value&gt;

    &lt;/context-param&gt;

    &lt;context-param&gt;

        &lt;param-name&gt;com.sun.faces.validateXml&lt;/param-name&gt;

        &lt;param-value&gt;true&lt;/param-value&gt;

    &lt;/context-param&gt;

    &lt;context-param&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;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;*.faces&lt;/url-pattern&gt;

    &lt;/servlet-mapping&gt;

    &lt;session-config&gt;

        &lt;session-timeout&gt;

            30

        &lt;/session-timeout&gt;

    &lt;/session-config&gt;

    &lt;welcome-file-list&gt;

        &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;

        &lt;/welcome-file-list&gt;

    &lt;/web-app&gt;
&lt;?xml version='1.0' encoding='UTF-8'?&gt;



&lt;!-- =========== FULL CONFIGURATION FILE ================================== --&gt;



&lt;faces-config version="1.2"

              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_1_2.xsd"&gt;



    &lt;managed-bean&gt;

        &lt;description&gt;

            O Bean ContatosController

        &lt;/description&gt;

        &lt;managed-bean-name&gt;contatos&lt;/managed-bean-name&gt;

        &lt;managed-bean-class&gt;br.com.nitewing.agenda.control.ContatosController

&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;description&gt;

                Mostrando todos contatos

            &lt;/description&gt;

            &lt;from-outcome&gt;mostrar&lt;/from-outcome&gt;

            &lt;to-view-id&gt;/mostrar.jsp&lt;/to-view-id&gt;

        &lt;/navigation-case&gt;

    &lt;/navigation-rule&gt;

    &lt;navigation-rule&gt;

        &lt;display-name&gt;mostrar&lt;/display-name&gt;

        &lt;from-view-id&gt;/mostrar.jsp&lt;/from-view-id&gt;

        &lt;navigation-case&gt;

            &lt;description&gt;

                Adicionando um novo contato pela

                pagina mostrar.jsp(mostrar.faces)

            &lt;/description&gt;

            &lt;from-outcome&gt;novo&lt;/from-outcome&gt;

            &lt;to-view-id&gt;/inserirContato.jsp&lt;/to-view-id&gt;

        &lt;/navigation-case&gt;

    &lt;/navigation-rule&gt;

    &lt;navigation-rule&gt;

        &lt;from-view-id&gt;/inserirContato.jsp&lt;/from-view-id&gt;

        &lt;navigation-case&gt;

            &lt;description&gt;

                Regra de navegação caso ocorra sucesso na inserção do livro observe que o view outcome tem como valor strings que representam ações existentes tanto controller quanto nos formulários.

            &lt;/description&gt;

            &lt;from-outcome&gt;sucesso_ins&lt;/from-outcome&gt;

            &lt;to-view-id&gt;/mostrar.jsp&lt;/to-view-id&gt;

        &lt;/navigation-case&gt;

    &lt;/navigation-rule&gt;

&lt;/faces-config&gt;



===============================java=================================

package Control;
import Dao.ContatosDAO;
import Dao.ContatosDAOException;
import Dao.InterfaceContatosDAO;
import Model.Contatos;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

public class ContatosController {



    private Contatos contato;

    private DataModel model;



    public String novoContato(){

        this.contato = new Contatos();

        return &quot;novo&quot;;

    }



    public Contatos getContato(){

        return contato;

    }



    public void setContato(Contatos contato){

        this.contato = contato;

    }



    public DataModel getTodos() throws ContatosDAOException {

        InterfaceContatosDAO icdao =  new ContatosDAO();

        model = new ListDataModel(icdao.listarTodos());

        return model;

    }



    public String create()throws ContatosDAOException {

        InterfaceContatosDAO icdao = new ContatosDAO();

        icdao.salvar(contato);

        return &quot;sucesso_ins&quot;;

    }

    // Aqui acrescentaremos os métodos para Atualização e Exclusão.

}
package Dao;



import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;



/*

 * Esta classe sera a nossa fabrica de conexões. Ela cria a conexão

 * e retorna o resultado para quem a chamar, obsever que ela faz uso

 * de ContatosDAOException toda vez que ocorre um erro, alem disse ela possui

 * métodos de CloseConnection para fechar a conexão, o Statement e o ResultSet

 *

 */



public class ConnectContatosFactory {



    public static Connection getConnection() throws ContatosDAOException {

        try {

            Class.forName(&quot;com.mysql.jdbc.Driver&quot;);

            return DriverManager.getConnection(&quot;jdbc:mysql://localhost:3306/agenda&quot;, &quot;root&quot;, &quot;admin&quot;);

        } catch (Exception e) {

            throw new ContatosDAOException(e.getMessage());

        }

    }



    public static void closeConnection(Connection conn, Statement stmt, ResultSet rs)

            throws ContatosDAOException {

        close(conn, stmt, rs);

    }



    public static void closeConnection(Connection conn, Statement stmt)

            throws ContatosDAOException {

        close(conn, stmt, null);

    }



    public static void closeConnection(Connection conn)

            throws ContatosDAOException {

        close(conn, null, null);

    }



    private static void close(Connection conn, Statement stmt, ResultSet rs) throws ContatosDAOException {

        try {

            if (rs != null) {

                rs.close();

            }

            if (stmt != null) {

                stmt.close();

            }

            if (conn != null) {

                conn.close();

            }

        } catch (Exception e) {

            throw new ContatosDAOException(e.getMessage());

        }

    }

}
package Dao;



import Model.Contatos;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;



public class ContatosDAO implements InterfaceContatosDAO {



    private Connection conn;



    public ContatosDAO() throws ContatosDAOException {

        try {

            this.conn = ConnectContatosFactory.getConnection();

        } catch (Exception e) {

            throw new ContatosDAOException(&quot;Erro&quot; + &quot;:\n&quot; + e.getMessage());

        }



    }



    public void salvar(Contatos contato) throws ContatosDAOException {

        PreparedStatement ps = null;

        Connection conn = null;

        if(contato == null)

            throw new ContatosDAOException(&quot;O Valor passado não pode ser lido&quot;);

        try {

            String sql = &quot;insert into registros(nome,endereco,bairro,cidade,estado,cep,telefone)&quot; +

                    &quot;values(?,?,?,?,?,?,?)&quot;;

            conn = this.conn;

            ps = conn.prepareStatement(sql);

            ps.setString(1, contato.getNome());

            ps.setString(2, contato.getEndereco());

            ps.setString(3,contato.getBairro());

            ps.setString(4, contato.getCidade());

            ps.setString(5, contato.getEstado());

            ps.setString(6, contato.getCep());

            ps.setString(7, contato.getTelefone());

            ps.executeUpdate();

        } catch (Exception sqle) {

        throw new ContatosDAOException(&quot;Erro ao inserir dados&quot; + sqle);

        }finally{

            ConnectContatosFactory.closeConnection(conn, ps);



        }

    }



    public List listarTodos() throws ContatosDAOException {

        PreparedStatement ps = null;

        Connection conn = null;

        ResultSet rs = null;



        try {

            conn = this.conn;

            ps = conn.prepareStatement(&quot;select id,nome,endereco,bairro,&quot; +

                    &quot;cidade,estado,cep,telefone from registros&quot;);

            rs = ps.executeQuery();

            List list = new ArrayList();

            while (rs.next()) {

                int id = rs.getInt(1);

                String nome = rs.getString(2);

                String endereco = rs.getString(3);

                String bairro = rs.getString(4);

                String cidade = rs.getString(5);

                String estado = rs.getString(6);

                String cep = rs.getString(7);

                String telefone = rs.getString(8);



                list.add(new Contatos(id, nome, endereco, bairro, cidade, estado, cep, telefone));



            }

            return list;



        } catch (Exception sqle) {

            throw new ContatosDAOException(sqle);

        } finally {

            ConnectContatosFactory.closeConnection(conn, ps, rs);

        }

    }



    public void atualizar(Contatos contato) throws ContatosDAOException {

        throw new UnsupportedOperationException(&quot;Not supported yet.&quot;);

    }



    public void excluir(Contatos contato) throws ContatosDAOException {

        throw new UnsupportedOperationException(&quot;Not supported yet.&quot;);

    }

}

package Dao;



public class ContatosDAOException extends Exception{



    public ContatosDAOException() {

    }



     public ContatosDAOException(String arg) {

        super(arg);

    }



    public ContatosDAOException(Throwable arg) {

        super(arg);

    }



    public ContatosDAOException(String arg,Throwable arg1){

        super(arg,arg1);

}

}
package Dao;
import Model.Contatos;
import java.util.List;



public interface InterfaceContatosDAO {

void atualizar (Contatos contato) throws ContatosDAOException;

void excluir (Contatos contato) throws ContatosDAOException;

void salvar (Contatos contato)throws ContatosDAOException;

List listarTodos()throws ContatosDAOException ;

}
package Model;

public class Contatos {

/** Declaração de Atributos, Observe que so os mesmos campos existente

 *  Na tabela que criamos no MySQL, os atributos devem ser declarados privados

 */

private int id;

private String nome;

private String endereco;

private String bairro;

private String cidade;

private String estado;

private String cep;

private String telefone;



    public Contatos() {

        // Construtor da classe vazio

    }



    public Contatos(int id, String nome, String endereco, String bairro, String cidade, String estado, String cep, String telefone) {

        //Construtor recebendo parâmetros

        this.nome = nome;

        this.endereco = endereco;

        this.bairro = bairro;

        this.cidade = cidade;

        this.estado = estado;

        this.cep = cep;

        this.telefone = telefone;

    }

        // Getters e Setters



    public String getBairro() {

        return bairro;

    }



    public void setBairro(String bairro) {

        this.bairro = bairro;

    }



    public String getCep() {

        return cep;

    }



    public void setCep(String cep) {

        this.cep = cep;

    }



    public String getCidade() {

        return cidade;

    }



    public void setCidade(String cidade) {

        this.cidade = cidade;

    }



    public String getEndereco() {

        return endereco;

    }



    public void setEndereco(String endereco) {

        this.endereco = endereco;

    }



    public String getEstado() {

        return estado;

    }



    public void setEstado(String estado) {

        this.estado = estado;

    }



    public String getNome() {

        return nome;

    }



    public void setNome(String nome) {

        this.nome = nome;

    }



    public String getTelefone() {

        return telefone;

    }



    public void setTelefone(String telefone) {

        this.telefone = telefone;

    }

}

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;
&lt;hibernate-configuration&gt;
  &lt;session-factory&gt;
    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.PostgreSQLDialect&lt;/property&gt;
    &lt;property name="hibernate.connection.driver_class"&gt;org.postgresql.Driver&lt;/property&gt;
    &lt;property name="hibernate.connection.url"&gt;jdbc:postgresql://localhost:5432/NUTECBD&lt;/property&gt;
    &lt;property name="hibernate.connection.username"&gt;root&lt;/property&gt;
    &lt;property name="hibernate.connection.password"&gt;debian23&lt;/property&gt;
  &lt;/session-factory&gt;
&lt;/hibernate-configuration&gt;

Aparentemente o servidor não encontrou os JARs que implementam o JSF.

Verifique se os arquivos estão na pasta lib do projeto e/ou servidor

[quote=Insônia]Aparentemente o servidor não encontrou os JARs que implementam o JSF.

Verifique se os arquivos estão na pasta lib do projeto e/ou servidor[/quote]
Isso ai ta faltando a JAR do JSF np projeto, tava com esse erro agora a pouco!!
vlw

UMC estou fazendo esse exemplo pára vc !

[quote=juniorsatanas]UMC estou fazendo esse exemplo pára vc !

[/quote]
Obrigado!! e esse erro consegiu resolver ae com vc!!
vo copia as classes e rodar aki pra ver se da esse erro!!
vai dar nao as classes nao tem nomes!!!
vlw
abs

Tem mais uma coisa vc ta usando hibernate?
se tiver e ruim pra mim pq eu ainda nao mexo com ele , to planejando estudar so sobre ele!!
se nao ta blz
o nao tem problema??!!

vlw
abs

Hernate tem nada de dificil cara…

estou usando sim !
fic mais facil …

[quote=juniorsatanas]Hernate tem nada de dificil cara…

estou usando sim !
fic mais facil …[/quote]
e vejo isso sempre dissem q e muito facil so que ainda achei tmp para estudar sobre o assunto!!
tem problema nao e bom q assim eu me esfoço mais para aprender!
vlw
abs

Mano e simples ele faz as conexões com banco e controla as sessões etc…

Hum legal vo aprofundar mais! Concerteza.
vo te pedir so uma coisa creio q seja a ultima!!rs
vc pode disponibilizar o projeto pode enviar pro meu email?
umcastec@hotmail.com
Muito Obrigado pela ajuda!!
vlw
abs