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.