Я пытаюсь реализовать какой-то аудит в приложении Java EE JPA на GlassFish 3.
Я добавил аннотацию @EntityListeners
к моему объекту @MappedSuperclass
, слушатель имеет аннотации @PrePersist
и @PreUpdate
к своим методам, которые успешно вызываются во время выполнения.
В этих методах я пытаюсь использовать(@Inject
)а @Named
, @Stateful
,@SessionScoped
фасоль(UserSession
)чтобы получить идентификатор текущего пользователя. Класс слушателя вообще не имеет аннотаций.
Проблема в том, что я не могу ввести bean-компонент UserSession
; Я всегда получаю значение null
. К этому времени я пробовал равнину@Inject UserSession us;
который всегда вводит нулевое значение. Я также пробовал UserSession us = (UserSession) ctx.lookup("java:global/application/module/UserSession");
, который всегда возвращает новый объект (Я проверил вызов конструктора, плюс объект пустой).
Я почти уверен, что пропустил что-то очень важное в отношении CDI, но не могу понять, что именно. Может ли кто-нибудь указать мне правильное направление?