假设我有一个看起来像这样的拦截器:
public class AuthorizationInterceptor {
Logger log = Logger.getLogger(getClass().getName());
@AroundInvoke
private Object authorize(InvocationContext ic) throws Exception{
// ... some other logic for authorization
if (!allowedMethods.contains(ic.getMethod().getName())){
log.info("Authorization failed. Preparing to throw exception");
throw new AuthException("Authorization failed for method " +
ic.getMethod().getName());
}
return ic.proceed();
}
}
这适用于我的 EJB 的不同方法。
我通常希望将抛出的异常传递给调用客户端,就像所有正常的 EJB 异常一样。
显然,如果我从拦截器中抛出它,这不会发生......它甚至没有登录到服务器上;就像它从未被抛出一样 - return 语句从未被执行。
我究竟做错了什么?
我正在使用 GF 3.0.1