Olá pessoal,
tô com o seguinte problema, tenho alguns métodos no EJB, após fazer o cadastro, vou listar os dados, e só lista os dados do funcionário ([entity.Funcionario[CPF=1111 Nome=zé], entity.Funcionario[CPF=4444 Nome=maria]])
Nas outras listagens não são exibidas as listagens e aparece uma pá de erro, sendo que já verifiquei linha a linha o erro na console e coloquei pra debugar e nada. Abaixo segue um trecho do erro, que leva até o método buscarTodosClientes que está no EJB. Um tanto quanto estranho já que a lógica do buscarTodosFuncionarios é a mesma e funciona.
at sessionbean.__ServicosLocadoraRemote_Remote_DynamicStub.buscarTodosClientes(sessionbean/__ServicosLocadoraRemote_Remote_DynamicStub.java)
... 2 more
Antes que alguém pergunte: o jar do EJB está atualizado na aplicação cliente? Sim.
após modificar o EJB, fez o deploy. Sim (E ainda parei e iniciei o Glassfish pra garantir)
está sendo feita a persistência de todas as entidades no banco? Sim.
Então pra ver se algúem ajuda, vou deixar trechos de código abaixo. Relembrando que buscarTodosFuncionarios(); retorna a lista e os outros métodos não.
package sessionbean;
@Remote
public interface ServicosLocadoraRemote {
public List<Funcionario> buscarTodosFuncionarios();
public List<Cliente> buscarTodosClientes();
}
@Stateless(mappedName="locadoraRemota")
public class ServicosLocadoraBean implements ServicosLocadoraRemote {
@PersistenceContext(unitName="LocadoraUP")
private EntityManager manager;
@SuppressWarnings("unchecked")
@Override
public List<Funcionario> buscarTodosFuncionarios() {
Query query = manager.createQuery("SELECT f FROM Funcionario f");
List<Funcionario> funcionarios = query.getResultList();
return funcionarios;
}
@SuppressWarnings("unchecked")
@Override
public List<Cliente> buscarTodosClientes() {
Query query = manager.createQuery("SELECT c FROM Cliente c");
List<Cliente> clientes = query.getResultList();
return clientes;
}
}
package entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@SuppressWarnings("serial")
@Entity
public class Funcionario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String cpf, nome, senha;
@OneToOne
private Locadora locadora;
public Funcionario() {}
public Funcionario(String cpf, String nome, String senha) {
this.cpf = cpf;
this.nome = nome;
this.senha = senha;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public Locadora getLocadora() {
return locadora;
}
public void setLocadora(Locadora locadora) {
this.locadora = locadora;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Funcionario)) {
return false;
}
Funcionario other = (Funcionario) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
/*@Override
public String toString() {
return "entity.Funcionario[id=" + id + "]";
}*/
@Override
public String toString() {
return "entity.Funcionario[CPF=" + cpf + " Nome=" + nome + "]";
}
}
package entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@SuppressWarnings("serial")
@Entity
public class Cliente implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String cpf, nome;
@OneToOne
private Locacao locacao;
@OneToOne
private Locadora locadora;
public Cliente() {}
public Cliente(String cpf, String nome) {
this.cpf = cpf;
this.nome = nome;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Locacao getLocacao() {
return locacao;
}
public void setLocacao(Locacao locacao) {
this.locacao = locacao;
}
public Locadora getLocadora() {
return locadora;
}
public void setLocadora(Locadora locadora) {
this.locadora = locadora;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Cliente)) {
return false;
}
Cliente other = (Cliente) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
/*@Override
public String toString() {
return "entity.Cliente[id=" + id + "]";
}*/
@Override
public String toString() {
return "entity.Cliente[CPF=" + cpf + " Nome=" + nome + "]";
}
}
E o teste no main
public class Main {
public static void main(String[] args) {
try{
InitialContext ctx = new InitialContext();
ServicosLocadoraRemote dao = (ServicosLocadoraRemote) ctx.lookup("locadoraRemota");
/*dao.cadastrarLocadora("Locadora A");
dao.cadastrarFuncionario("Locadora A", "1111", "zé", "123");
dao.cadastrarFuncionario("Locadora A", "4444", "maria", "123");
dao.cadastrarCarro("Locadora A", "AAA-1111", "Chevrolet", "Vectra");
dao.cadastrarCarro("Locadora A", "BBB-2222", "Chevrolet", "Meriva");
dao.cadastrarCarro("Locadora A", "CCC-3333", "FIAT", "Uno");
dao.cadastrarCliente("Locadora A", "2222", "maria");
dao.cadastrarCliente("Locadora A", "3333", "josé");
dao.realizarLocacao("Locadora A", "2222", "BBB-2222");
dao.realizarLocacao("Locadora A", "3333", "AAA-1111");*/
//System.out.println(dao.buscarTodasLocadoras());
//System.out.println(dao.buscarTodosFuncionarios());
//System.out.println(dao.buscarTodosCarros());
System.out.println(dao.buscarTodosClientes());
//System.out.println(dao.buscarTodasLocacoes());
//dao.devolver("3333");
}catch(NamingException ne) {
ne.printStackTrace();
}
}
}