Внедрение компонента SessionScoped Stateful в EntityListener

Я пытаюсь реализовать какой-то аудит в приложении 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, но не могу понять, что именно. Может ли кто-нибудь указать мне правильное направление?

5
задан Arjan Tijms 7 July 2012 в 17:59
поделиться