У меня есть компонент Seam, который обрабатывает вход в систему, с именем «authenticator»:
@Name("authenticator")
public class AuthenticatorAction implements Authenticator
{
@PersistenceContext
private EntityManager em;
@In(required=false)
@Out(required=false, scope = SESSION)
private User user;
public boolean authenticate(){ ... }
}
Это прекрасно работает, Seam внедряет экземпляр EntityManager. Однако, как только я добавляю аннотацию @Stateless
, ничего не происходит! В этом случае экземпляр EntityManager является нулевым при входе в метод authenticate()
. Еще одно интересное замечание: у меня есть отдельный сессионный компонент с состоянием, экземпляр Logger в этом классе внедряется, только если я сделаю его статическим. Если он у меня нестатический, он не вводится. Это отлично подходит для регистратора, но для таких сессионных компонентов без сохранения состояния, я не могу иметь статические переменные-члены для этих компонентов.
Я запутался, потому что этот аутентификатор именно такой, как в примере бронирования Seam: сессионный компонент без сохранения состояния с внедренной переменной private.
Есть идеи?