Pessoal eu estou fazendo uma aplicação EJB 3.0 no NetBeans 6.5 que quando eu chamo o metodo adicionarUsuario do modulo cliente me lanca um erro no qual parece que o entitymanager esta null.
olha o erro que e mostrado quando eu rodo o cliente.
a linha 26 de UsuarioFacade.java é em.persist(usuario)
estou usando NetBeans 6.5, toplink, Servidor GlassFish, JEE 5
alquem sabe porque desse erro??
minha aplicacao client
@EJB
private static TestarRemote testarBean;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
testarBean = new TestarBean();
System.out.println(testarBean.status());
testarBean.adicionarUsuario();
}
Usuario.java
@Entity
@Table(name = "usuario")
@NamedQueries({@NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"), @NamedQuery(name = "Usuario.findById", query = "SELECT u FROM Usuario u WHERE u.id = :id"), @NamedQuery(name = "Usuario.findByNome", query = "SELECT u FROM Usuario u WHERE u.nome = :nome")})
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Column(name = "nome")
private String nome;
public Usuario() {
}
public Usuario(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@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 Usuario)) {
return false;
}
Usuario other = (Usuario) 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 "br.tabelas.Usuario[id=" + id + "]";
}
UsuarioFacadeLocal.java
@Local
public interface UsuarioFacadeLocal {
void create(Usuario usuario);
void edit(Usuario usuario);
void remove(Usuario usuario);
Usuario find(Object id);
List<Usuario> findAll();
}
UsuarioFacade.java
@Stateless
public class UsuarioFacade implements UsuarioFacadeLocal {
@PersistenceContext
private EntityManager em;
public void create(Usuario usuario) {
if (em == null){
System.out.println("EntityManager esta null");
}
em.persist(usuario);
}
public void edit(Usuario usuario) {
em.merge(usuario);
}
public void remove(Usuario usuario) {
em.remove(em.merge(usuario));
}
public Usuario find(Object id) {
return em.find(Usuario.class, id);
}
public List<Usuario> findAll() {
return em.createQuery("select object(o) from Usuario as o").getResultList();
}
}
TestarRemote.java
@Remote
public interface TestarRemote {
String status();
void adicionarUsuario();
}
TestarBean.java
@Stateless
public class TestarBean implements TestarRemote {
public String status() {
return "Status OK";
}
public void adicionarUsuario() {
Usuario usuario = new Usuario();
usuario.setNome("Nome do Usuario");
UsuarioFacade facade = new UsuarioFacade();
facade.create(usuario);
}
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method" or "Web Service > Add Operation")
}