Pessoal estou criando tentando rodar somente a classe cliente e não estou conseguindo.
Erros
Erro The server encountered an internal error that prevented it from fulfilling this request
javax.servlet.ServletException
javax.faces.webapp.FacesServlet.service(Unknown Source)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
ClienteBean
package br.com.geor.bean;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.geor.DAO.ClientesDAO;
import br.com.geor.domain.Clientes;
import br.com.geor.util.JSFUtil;
@ManagedBean(name = "MBClientes")
@ViewScoped
public class ClientesBean {
private Clientes clientes;
private ArrayList<Clientes> itens;
private ArrayList<Clientes> itensFiltrados;
public Clientes getClientes() {
return clientes;
}
public void setClientes(Clientes clientes) {
this.clientes = clientes;
}
public ArrayList<Clientes> getItens() {
return itens;
}
public void setItens(ArrayList<Clientes> itens) {
this.itens = itens;
}
public ArrayList<Clientes> getItensFiltrados() {
return itensFiltrados;
}
public void setItensFiltrados(ArrayList<Clientes> itensFiltrados) {
this.itensFiltrados = itensFiltrados;
}
@PostConstruct
public void prepararPesquisa() {
try {
ClientesDAO fDAO = new ClientesDAO();
itens = fDAO.listar();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void prepararNovo() {
clientes = new Clientes();
}
public void novo() {
try {
ClientesDAO fDAO = new ClientesDAO();
fDAO.salvar(clientes);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Cliente salvo com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro(e.getMessage());
e.printStackTrace();
}
}
public void excluir() {
try {
ClientesDAO fDAO = new ClientesDAO();
fDAO.excluir(clientes);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Cliente excluido com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro("Não é possível excluir este cliente.");
e.printStackTrace();
}
}
public void editar() {
try {
ClientesDAO fDAO = new ClientesDAO();
fDAO.editar(clientes);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Cliente editado com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro("e.getMessage()");
e.printStackTrace();
}
}
}
ClienteDAO
package br.com.geor.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import br.com.geor.domain.Clientes;
import br.com.geor.factory.ConexaoFactory;
public class ClientesDAO {
public void salvar(Clientes c) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO clientes ");
sql.append("(nome, endereco, fone, celular, email, cpf) ");
sql.append("VALUES (?, ?, ?, ?, ?, ?)");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, c.getNome());
comando.setString(2, c.getEndereco());
comando.setString(3, c.getFone());
comando.setString(4, c.getCelular());
comando.setString(5, c.getEmail());
comando.setString(6, c.getCpf());
comando.executeUpdate();
}
public ArrayList<Clientes> listar()throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("SELECT codigo, nome, endereco, fone, celular, email, cpf ");
sql.append("FROM clientes ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
ResultSet resultado = comando.executeQuery();
ArrayList<Clientes>lista = new ArrayList<Clientes>();
while(resultado.next()){
Clientes c = new Clientes();
c.setCodigo(resultado.getLong("codigo"));
c.setNome(resultado.getString("nome"));
c.setEndereco(resultado.getString("endereco"));
c.setFone(resultado.getString("fone"));
c.setCelular(resultado.getString("celular"));
c.setEmail(resultado.getString("email"));
c.setCpf(resultado.getString("cpf"));
lista.add(c);
}
return lista;
}
public void excluir(Clientes c) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("DELETE FROM clientes ");
sql.append("WHERE codigo = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setLong(1, c.getCodigo());
comando.executeUpdate();
}
public void editar(Clientes c) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE clientes ");
sql.append("SET nome = ?, endereco = ?, fone = ?, celular = ?, email =?, cpf = ? ");
sql.append("WHERE codigo = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, c.getNome());
comando.setString(2, c.getEndereco());
comando.setString(3, c.getFone());
comando.setString(4, c.getCelular());
comando.setString(5, c.getEmail());
comando.setString(6, c.getCpf());
comando.setLong(7, c.getCodigo());
comando.executeUpdate();
}
}
Clientes
package br.com.geor.domain;
public class Clientes {
private Long codigo;
private String nome;
private String endereco;
private String fone;
private String celular;
private String email;
private String cpf;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
}
ConexaoFactory
package br.com.geor.factory;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConexaoFactory {
private static final String USUARIO = "root";
private static final String SENHA = "Emanuel123";
private static final String URL = "jdbc:mysql://localhost:3306/sistema";
public static Connection conectar() throws SQLException {
Connection conexao = DriverManager.getConnection(URL, USUARIO, SENHA);
return conexao;
}
public static void main(String[] args) {
try{
Connection conexao = ConexaoFactory.conectar();
System.out.println("Conectado com sucesso!");
} catch(SQLException ex) {
System.out.println("Conexao falhou!");
ex.printStackTrace();
}
}
}
clientes.xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/templates/modeloSistema.xhtml"
>
<ui:define name="menu">
<ui:include src="/includes/menu.xhtml" />
</ui:define>
<ui:define name="conteudo">
<h:form id="frmclientes">
<p:dataTable id="tbclientes"
widgetVar="tabelaClientes"
emptyMessage="Nenhum registro encontrado!"
value="#{MBClientes.itens}"
var="item"
filteredValue="#{MBFornecedores.itensFiltrados}"
paginator="true"
rows="5"
>
<f:facet name="header">Lista de Clientes</f:facet>
<p:column headerText="Código" sortBy="#{item.codigo}" filterBy="#{item.codigo}">
<h:outputText value="#{item.codigo}" />
</p:column>
<p:column headerText="Nome" sortBy="#{item.nome}" filterBy="#{item.nome}">
<h:outputText value="#{item.nome}" />
</p:column>
<p:column headerText="Endereço" sortBy="#{item.endereco}" filterBy="#{item.endereco}">
<h:outputText value="#{item.endereco}" />
</p:column>
<p:column headerText="Telefone fixo" sortBy="#{item.fone}" filterBy="#{item.fone}">
<h:outputText value="#{item.fone}" />
</p:column>
<p:column headerText="Telefone celular" sortBy="#{item.celular}" filterBy="#{item.celular}">
<h:outputText value="#{item.celular}" />
</p:column>
<p:column headerText="Email" sortBy="#{item.email}" filterBy="#{item.email}">
<h:outputText value="#{item.email}" />
</p:column>
<p:column headerText="CPF" sortBy="#{item.cpf}" filterBy="#{item.cpf}">
<h:outputText value="#{item.cpf}" />
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-trash"
oncomplete="PF('dlgcliExcluir').show();" update=":frmcliExcluir:pncliExcluir" >
<f:setPropertyActionListener value="#{item}" target="#{MBClientes.clientes}"></f:setPropertyActionListener>
</p:commandButton>
<p:commandButton icon="ui-icon-pencil"
oncomplete="PF('dlgcliEditar').show();" update=":frmcliEditar:pncliEditar" >
<f:setPropertyActionListener value="#{item}" target="#{MBClientes.clientes}"></f:setPropertyActionListener>
</p:commandButton>
</p:column>
<f:facet name="footer">
<p:commandButton value="Novo" actionListener="#{MBClientes.prepararNovo}"
oncomplete="PF('dlgcliNovo').show();" update=":frmcliNovo:pncliNovo" /></f:facet>
</p:dataTable>
</h:form>
<p:dialog widgetVar="dlgcliNovo" closable="false" draggable="false" resizable="false"
header="Cadastar Cliente"
modal="true"
appendTo="@(body)"
>
<h:form id="frmcliNovo">
<h:panelGrid id="pncliNovo" columns="2">
<p:outputLabel value="Nome:" for="txtNomeNovo" />
<h:inputText size="50" maxlength="50" id="txtNomeNovo"
value="#{MBClientes.clientes.nome}" required="true"
requiredMessage="O campo descrição é obrigatório." />
<p:outputLabel value="Endereço:" for="txtEnderecoNovo" />
<h:inputText size="50" maxlength="50" id="txtEnderecoNovo"
value="#{MBClientes.clientes.endereco}" required="true"
requiredMessage="O campo descrição é obrigatório." />
<p:outputLabel value="Telefone fixo:" for="txtFoneNovo" />
<h:inputText size="50" maxlength="50" id="txtFoneNovo"
value="#{MBClientes.clientes.fone}" required="true"
requiredMessage="O campo descrição é obrigatório." />
<p:outputLabel value="Telefone celular:" for="txtCelularNovo" />
<h:inputText size="50" maxlength="50" id="txtCelularNovo"
value="#{MBClientes.clientes.celular}" required="true"
requiredMessage="O campo descrição é obrigatório." />
<p:outputLabel value="Email:" for="txtEmailNovo" />
<h:inputText size="50" maxlength="50" id="txtEmailNovo"
value="#{MBClientes.clientes.email}" required="true"
requiredMessage="O campo descrição é obrigatório." />
<p:outputLabel value="CPF:" for="txtCpfNovo" />
<h:inputText size="50" maxlength="50" id="txtCpfNovo"
value="#{MBClientes.clientes.cpf}" required="true"
requiredMessage="O campo descrição é obrigatório." />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Gravar" actionListener="#{MBClientes.novo}"
oncomplete="verificar(xhr, status, args, 'dlgcliNovo', 'tbclientes');"
update=":frmclientes:tbclientes :msgGlobal"/>
<p:commandButton value="Cancelar"
process="@this"
onclick="PF('dlgcliNovo').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<p:dialog widgetVar="dlgcliExcluir" closable="false" draggable="false" resizable="false"
header="Excluir Cliente"
modal="true"
appendTo="@(body)">
<h:form id="frmcliExcluir">
<h:panelGrid id="pncliExcluir" columns="2">
<h:outputText value="Código" />
<h:outputText value="#{MBClientes.clientes.codigo}" />
<h:outputText value="Nome" />
<h:outputText value="#{MBClientes.clientes.nome}" />
<h:outputText value="CPF" />
<h:outputText value="#{MBClientes.clientes.cpf}" />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Excluir" actionListener="#{MBClientes.excluir}"
oncomplete="PF('dlgcliExcluir').hide(); PF('tabelaClientes').clearFilters(); "
update=":frmclientes:tbclientes :msgGlobal"/>
<p:commandButton value="Cancelar" onclick="PF('dlgcliExcluir').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<p:dialog widgetVar="dlgcliEditar" closable="false" draggable="false" resizable="false"
header="Editar Cliente"
modal="true"
appendTo="@(body)">
<h:form id="frmcliEditar">
<h:panelGrid id="pncliEditar" columns="2">
<h:outputText value="Código" />
<h:outputText value="#{MBClientes.clientes.codigo}" />
<h:outputText value="Nome" for="txtNomeEdt" />
<h:inputText value="#{MBClientes.clientes.nome}"
id="txtNomeEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
<h:outputText value="Endereço" for="txtEnderecoEdt" />
<h:inputText value="#{MBClientes.clientes.endereco}"
id="txtEnderecoEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
<h:outputText value="Telefone fixo" for="txtFoneEdt" />
<h:inputText value="#{MBClientes.clientes.fone}"
id="txtFoneEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
<h:outputText value="Telefone celular" for="txtCelularEdt" />
<h:inputText value="#{MBClientes.clientes.celular}"
id="txtCelularEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
<h:outputText value="Email" for="txtEmailEdt" />
<h:inputText value="#{MBClientes.clientes.email}"
id="txtEmailEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
<h:outputText value="CPF" for="txtCpfEdt" />
<h:inputText value="#{MBClientes.clientes.cpf}"
id="txtCpfEdt"
required="true"
requiredMessage="O campo descrição é obrigatório." />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Editar" actionListener="#{MBClientes.editar}"
oncomplete="verificar(xhr, status, args, 'dlgcliEditar', 'tbclientes'); "
update=":frmclientes:tbclientes :msgGlobal"/>
<p:commandButton value="Cancelar"
process="@this"
onclick="PF('dlgcliEditar').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>`