Olá, estou começando a aprender a utilizar o EJB 3.0 ainda, mas estou com um erro que está dificil de solucionar:
Pra começar, estou utilizando a IDE MyEclipse 7.5. Tenho uma tabela no Postgres bem simples chamada User com id, firstname, lastname, datacreated, username e password como atributos.
Primeiramente criei o projeto EJB, após isso fui na tabela (dentro do MyEclipse mesmo) e fiz EJB Reverse Engineering.
Essa engenharia reversa, criou essas classes para mim automaticamente:
AbstractUser
LogUtil
User
UserFacade
UserFacadeLocal
UserFacadeRemote
Até aí tudo bem, para testar se realmente está gravando no banco de dados, criei a classe testeejb2:
public class testeejb2 {
public static void main(String[] args) {
UserFacade uf = new UserFacade();
User u = new User();
u.setEntityManager(uf.getEntityManager());
u.setFirstName("joao");
u.setLastName("silva");
u.setUsername("jsilva");
u.setPassword("1234567");
u.setId(6);
uf.save(u);
}
}
Quando dou run pra testar o código aparece esse erro:
[color=red]06/07/2009 13:52:05 com.genuitec.LogUtil log
SEVERE: save failed
java.lang.NullPointerException
at com.genuitec.UserFacade.save(UserFacade.java:45)
at com.genuitec.testeejb2.main(testeejb2.java:14)
Exception in thread "main" java.lang.NullPointerException
at com.genuitec.UserFacade.save(UserFacade.java:45)
at com.genuitec.testeejb2.main(testeejb2.java:14)[/color]
public void save(User entity) {
LogUtil.log("saving User instance", Level.INFO, null);
try {
entityManager.persist(entity); //O ERRO ACONTECE AQUI
LogUtil.log("save successful", Level.INFO, null);
} catch (RuntimeException re) {
LogUtil.log("save failed", Level.SEVERE, re);
throw re;
}
}
Debugando descobri que naquela linha o valor de entityManager vem como null, alguem tem alguma idéia de como resolver? Se vocês acharem necessario posso postar o codigo de outras classes.
Vlw.

