После того, как сущность сохраняется, я хочу выполнить бит, который отправляет регистрационную почту новому зарегистрированному пользователю. Я хочу сделать это с помощью класса Listener. Я сделал следующее:NullPointerException с помощью метода @Inject и @PostPersist
- Аннотированным Субъект с
@EntityListener
(UserListener.class) - создал слушатель и аннотированный его
@Stateless
Вот код слушателя: (система .out.println часть только для целей тестирования)
@Stateless
public class UserListener {
@Inject
private MailSenderController mailSenderController;
@PostPersist
void onPostPersist(User user) throws AddressException{
System.out.println("PostPersist");
System.out.println("Username: " + user.getUsername());
mailSenderController.sendRegistrationMail(user);
}
}
MailSenderController является @RequestScoped
аннотированный боб.
Если я выполняю код, я получаю NullPointerException
. Если я удалю mailSenderController.sendRegistrationMail(user)
, код будет работать нормально.
Я думаю, что onPostPersist
будет выполнен до ввода MailSenderController
, и это вызывает NullPointerException
.
Может кто-нибудь помочь мне с этой проблемой?
MailSenderController аннотируется с помощью Named и RequestScoped. Не упоминал об этом в вопросе. Моя вина. – Rallenaldo