Являются ли перехватчики EJB 3.1 "блокировщиками"? - PullRequest
1 голос
/ 22 октября 2011

это мой первый пост здесь!

Я новичок в Java EE dev, и я хочу знать, может ли перехватчик блокировать нормальный поток выполнения.

Что я хочуреализовать - это своего рода bean-компонент "наблюдатель": предположим, что у меня есть bean-компонент, который выполняет обновление в БД, вызываемое из веб-слоя.Я хотел бы, чтобы другой компонент вызывался после обновления асинхронным способом, чтобы сделать что-то еще, в моем случае отправить электронное письмо с JavaMail, не блокируя нормальный поток первого компонента, то есть вернуть контроль тому, кто вызвал первый компонент.

Моя идея состоит в том, чтобы перехватить некоторый метод ejb сеанса: из этого перехватчика я хотел бы вызвать некоторые другие ejbs, например, одиночный ejb.Правильный ли подход?Я должен использовать что-то еще?

Спасибо!

1 Ответ

0 голосов
/ 22 октября 2011

Да, именно для этого нужны перехватчики.Клиент вызывает некоторый метод в вашем EJB, и вы определяете, какие перехватчики должны перехватывать этот вызов.

В методе перехватчика вы можете решить, что делать с запросом - либо он может перейти к следующему перехватчику в цепочке (или реальная конечная точка - ваш EJB - если это последний перехватчик) или он может заблокировать выполнение.

В методе перехвата у вас есть доступ к InvocationContext , для которого вы должны явно вызвать continue () метод для продолжения запроса.Не вызов этого метода просто блокирует вызов.

HTH.

...