Допустим, у меня есть перехватчик, который выглядит как что-то вроде этого:
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