Можно ли использовать @EJB внутри другого EJB? Я пытаюсь сделать это сейчас, и мой EJB заканчивается нулевым. В примере я расскажу о своей проблеме.EJB 3.1 - Использование @EJB внутри EJB - возможно ли это?
@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);
}
}
Возможно ли это, что это возможно? Я также должен упомянуть, что я использую встроенный контейнер (через EJBContainer), и я просматриваю AccountService с помощью JNDI, однако, когда я пытаюсь вызвать loginService.createLogin в AccountService, loginService имеет значение null (не инициализируется @EJB).
Является ли то, что я пытаюсь сделать возможным?
Спасибо.
Этот код, безусловно, соответствует. Возможно, у вас возникла какая-то проблема несвязанного развертывания, поэтому убедитесь, что LoginService успешно развернут. Если вы хотите увидеть рабочий пример EJB, ссылающийся на EJB через @EJB, посмотрите http://openejb.apache.org/3.0/injection-of-other-ejbs-example.html – 2010-11-27 19:45:10