Aplicação JSF utilizando o padrão MVC

Olá pessoal, sou novo membro do Guj, e estou iniciando em JSF, estou com um problema que não consigo fazer a inserção dos dados
no banco, o banco de dados que estou utlizando é o Postgresql 8.1, a IDE é o Eclipse.
Minha aplicação possui um package br.com.patterns.web.usuario.
Neste packege tenho duas classes, sendo uma a UsuarioVO, que tem os gets e sets com o campos que modelam o
banco de dados, no caso seria meu MODEL, e minha classe UsuarioFormBean, onde instancio a classe UsuarioVO, e
instancio a classe UsuarioFacade.

no outro package br.com.patterns.web.facade, tenho a interface UsuarioFacade que possui a anotação dos meus dois
metodos inserir e o metodo listar, e a classe que implementa está interface UsuarioFacadeImpl onde instancio a
minha classe UsuarioDAO, a classe UsuarioFacadeImpl seria meu Control, que acessa a classe DAO para persistir
no banco.

e o meu ultimo package é o br.com.patterns.web.usuariodao, que também contém uma inteface da UsuarioDAO e a
UsuarioDAOImpl que possui a implementação dos meus dois metodos, inserir e listar.

[color=#444444][color=red]está é meu UsuarioVO:[/color][/color]

[code]public class UsuarioVO {

private int id;
private String name;
private String endereco;
private String bairro;
private String cep;
private String cidade;
private String cpf;
private String rg;
private String fisJur;
private String funcao;
private String dataCad;
private String contanto;
private String observ;
private String telefone;
private String inscricaoCliente;

public int getId() {
	return id;
}

public void setId(int id) {
	this.id = id;....getters e setters[/code]

[color=red]aqui vai o código da minha classe UsuarioFormBean:[/color]

[code]package br.com.patterns.web.usuario;

import java.util.List;

import br.com.patterns.web.facade.UsuarioFacade;
import br.com.patterns.web.facade.UsuarioFacadeImpl;

public class UsuarioFormBean {

private UsuarioVO usuarioVO = new UsuarioVO();

private UsuarioFacade facade = new UsuarioFacadeImpl();

public UsuarioVO getUsuarioVO() {
	return usuarioVO;
}

public void setUsuarioVO(UsuarioVO usuarioVO) {
	this.usuarioVO = usuarioVO;
}

public String inserir(){
	facade.inserir(usuarioVO);
	return "sucesso";
}

public List<UsuarioVO> getUsuarios(){
	return facade.listar();
}

}[/code]

[color=orange]está é minha classe de implementação UsuarioFacadeImpl:[/color]

[code]package br.com.patterns.web.facade;

import java.util.List;

import br.com.patterns.web.dao.UsuarioDAO;
import br.com.patterns.web.dao.UsuarioDAOImpl;
import br.com.patterns.web.usuario.UsuarioVO;

public class UsuarioFacadeImpl implements UsuarioFacade {

public UsuarioDAO dao = new UsuarioDAOImpl();

public void inserir(UsuarioVO usuarioVo) {
	dao.inserir(usuarioVo);

}

public List<UsuarioVO> listar() {
	return dao.listar();
}

}[/code]

[color=red]está é a interface da classe usuariofacade:[/color]

[code]package br.com.patterns.web.facade;

import java.util.List;

import br.com.patterns.web.usuario.UsuarioVO;

public interface UsuarioFacade {

public void inserir(UsuarioVO usuarioVo);

public List<UsuarioVO> listar();

}[/code]

[color=orange]está é minha classe de implementação UsuarioDAOImpl:[/color]

[code]package br.com.patterns.web.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.com.patterns.web.usuario.UsuarioVO;

public class UsuarioDAOImpl implements UsuarioDAO {

public static Connection getConnection()throws Exception{
	Class.forName("org.postgres.Driver");
	return DriverManager.getConnection("jdbc:postgresql://localhost:5432/softcom","postgres","postgres");
}

private static void closeConnection(Connection con, PreparedStatement pstmt){
	try {
		if(con != null){
			con.close();
		}
		if(pstmt != null)
			pstmt.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

private static void closeConnection(Connection con, Statement stmt){
	try {
		if(con != null){
			con.close();
		}
		if(stmt != null)
			stmt.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

public void inserir(UsuarioVO usuarioVO) {
		Connection con = null;
		PreparedStatement pstmt = null;
	try {
		String sql = "INSERT INTO CLIENTE VALUE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
		con = getConnection();
		con.setAutoCommit(false);
		pstmt = con.prepareStatement(sql);
		pstmt.setInt(1, usuarioVO.getId());
		pstmt.setString(2, usuarioVO.getName());
		pstmt.setString(3, usuarioVO.getEndereco());
		pstmt.setString(4, usuarioVO.getBairro());
		pstmt.setString(5, usuarioVO.getCep());
		pstmt.setString(6, usuarioVO.getCidade());
		pstmt.setString(7, usuarioVO.getCpf());
		pstmt.setString(8, usuarioVO.getRg());
		pstmt.setString(9, usuarioVO.getFisJur());
		pstmt.setString(10, usuarioVO.getFuncao());
		pstmt.setString(11, usuarioVO.getDataCad());
		pstmt.setString(12, usuarioVO.getContanto());
		pstmt.setString(13, usuarioVO.getObserv());
		pstmt.setString(14, usuarioVO.getTelefone());
		pstmt.setString(15, usuarioVO.getInscricaoCliente());

		pstmt.executeUpdate();
		con.commit();

	} catch (Exception e) {
		try{
			con.rollback();
		}catch(SQLException ex){}
	}finally{
		closeConnection(con, pstmt);
	}
}

public List<UsuarioVO> listar() {
	Connection con = null;
	Statement stmt = null;
	List<UsuarioVO> list = new ArrayList<UsuarioVO>();
	try {
		String sql = "SELECT * FROM usuario";
		con = getConnection();
		stmt = con.createStatement();

		ResultSet rs = stmt.executeQuery(sql);
		while(rs.next()){
			UsuarioVO usuVO = new UsuarioVO();
			usuVO.setName(rs.getString(1));
			usuVO.setEndereco(rs.getString(2));
			usuVO.setTelefone(rs.getString(3));
			list.add(usuVO);
		}


	} catch (Exception e) {
		try{
			con.rollback();
		}catch(SQLException ex){}
	}finally{
		closeConnection(con, stmt);
	}
	return list;
}

}[/code]

[color=blue]o que acontece, quando carrego os campos com dados na interface, e clico no botão inserir
ele me dá este erro:[/color]

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: Error calling action method of component with id _idJsp0:_idJsp16
javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

root cause

javax.faces.FacesException: Error calling action method of component with id _idJsp0:_idJsp16
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
javax.faces.component.UICommand.broadcast(UICommand.java:109)
javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

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


Apache Tomcat/5.5

estou usando o Jboss como servidor, sei que foi meio extensa a mensagem,
mas se alguém souber como eu posso resolver este problema eu agradeço muito,
desde já agradeço, boa sorte a todos.

bom vamos começar, como está seu faces-config ??

e a tua view, posta eles ai pra gente poder te ajudar… :lol:

Olá, agradeço a atenção, aqui vai meu faces-config:

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

[code]

usuarioFormBean br.com.patterns.web.usuario.UsuarioFormBean request index /index.jsp sucesso /index.jsp

[/code]

e aqui vai minha view: index.jsp:

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

Insert title here
		<h:outputLabel for="name" value="Nome:" />
		<h:inputText id="name" value="#{usuarioFormBean.usuarioVO.name}" />

		<h:outputLabel for="endereco" value="Endereco:" />
		<h:inputText id="endereco"
			value="#{usuarioFormBean.usuarioVO.endereco}" />

		<h:outputLabel for="bairro" value="Bairro:" />
		<h:inputText id="bairro" value="#{usuarioFormBean.usuarioVO.bairro}" />

		<h:outputLabel for="cep" value="Cep:" />
		<h:inputText id="cep" value="#{usuarioFormBean.usuarioVO.cep}" />

		<h:outputLabel for="cidade" value="Cidade:" />
		<h:inputText id="cidade" value="#{usuarioFormBean.usuarioVO.cidade}" />

		<h:outputLabel for="cpf" value="CPF/CNPJ:" />
		<h:inputText id="cpf" value="#{usuarioFormBean.usuarioVO.cpf}" />

		<h:outputLabel for="rg" value="RG:" />
		<h:inputText id="rg" value="#{usuarioFormBean.usuarioVO.rg}" />

		<h:outputLabel for="inscricaocliente" value="INSCR/ESTADUAL:" />
		<h:inputText id="inscricaocliente"
			value="#{usuarioFormBean.usuarioVO.inscricaoCliente}" />

		<h:outputLabel for="fisJur" value="Física/Jurídica:" />
		<h:inputText id="fisJur" value="#{usuarioFormBean.usuarioVO.fisJur}" />

		<h:outputLabel for="dataCad" value="Data:" />
		<h:inputText id="dataCad"
			value="#{usuarioFormBean.usuarioVO.dataCad}" />

		<h:outputLabel for="contato" value="Contato:" />
		<h:inputText id="contato"
			value="#{usuarioFormBean.usuarioVO.contanto}" />

		<h:outputLabel for="telefone" value="Telefone:" />
		<h:inputText id="telefone"
			value="#{usuarioFormBean.usuarioVO.telefone}" />

		<h:outputLabel for="observ" value="Observação:" />
		<h:inputTextarea id="observ"
			value="#{usuarioFormBean.usuarioVO.observ}" />
	</h:panelGrid>
	<h:commandButton value="Inserir" action="#{usuarioFormBean.inserir}" />

	<f:verbatim>
		<br>
	</f:verbatim>
	<f:verbatim>
		<br>
	</f:verbatim>	

</h:form>

</f:view>

[/code]

o que acontece, quando eu preencho minhas textfiels, e cliclo no botão inserir,
dá aquele erro: