Kann @EJB in einem anderen EJB verwendet werden? Ich versuche das jetzt zu tun, und mein EJB endet mit null. Ich werde mein Problem in einem Beispiel skizzieren.EJB 3.1 - Verwendung von @EJB in einem EJB - ist das möglich?
@Stateless
@LocalBean
@Local(LoginServiceLocal.class)
public class LoginService implements LoginServiceLocal {
public void createLogin(String email, String password) { ... }
}
@Stateless
@LocalBean
@Local(AccountServiceLocal.class)
public class AccountService implements AccountServiceLocal {
@PersistenceContext(unitName = "accounts")
private EntityManager accountEntityManager;
@EJB
private LoginServiceLocal loginService;
public void createAccount(Account account, String email, String password) {
accountEntityManager.persist(account);
loginService.createLogin(email, password);
}
}
Ist diese Art von Sache möglich? Ich sollte auch erwähnen, dass ich einen eingebetteten Container (über EJBContainer) verwende, und ich suche den AccountService mit JNDI, aber wenn ich versuche, loginService.createLogin im AccountService aufzurufen, ist der loginService null (wird nicht initialisiert) @EJB).
Was versuche ich zu tun?
Danke.
Dieser Code auf jeden Fall kompatibel ist. Möglicherweise treten Probleme bei der Bereitstellung auf. Überprüfen Sie daher, ob LoginService erfolgreich bereitgestellt wurde. Wenn Sie ein funktionierendes Beispiel eines EJB sehen möchten, der auf ein EJB über @EJB verweist, lesen Sie http://openejb.apache.org/3.0/injection-of-other-ejsb-example.html –