这是我在这里的第一篇文章!
我是Java开发的新手,我想知道的是拦截器是否可以阻止正常的执行流。
我想实现的是一种“观察者”bean:假设我有一个在db中执行更新的bean,称为web层。我希望在更新后以异步方式调用另一个bean来做其他事情,在我的情况下使用JavaMail发送电子邮件,而不会阻塞第一个bean的正常流程,即将控制权交还给调用第一个bean的人。
我的想法是拦截一些会话ejb方法:从这个拦截器中,我想调用一些其他的ejb,比如单例ejb。这是正确的方法吗?我应该用别的东西吗?
谢谢!
发布于 2011-10-22 19:29:14
是的,这就是拦截器的作用。客户机调用您的EJB上的一些方法,您可以定义哪些拦截器应该拦截此调用。
在拦截器方法中,您可以决定如何处理请求-它可以前进到链中的下一个拦截器(或者实际的端点-您的EJB -如果这是最后一个拦截器),或者它可以阻止执行。
在拦截方法中,您可以访问InvocationContext,您必须显式地调用 proceed ()方法才能继续处理请求。不调用此方法显然会阻塞调用。
HTH。
https://stackoverflow.com/questions/7858846
复制相似问题