эта альтернатива также работает, и это именно то, что я хотел
@AroundInvoke
public Object intercept(InvocationContext ic) throws Exception {
BaseBean<? extends BaseEntity> bean = (BaseBean<?>)ic.getTarget();
RealmEnum realm = bean.getRealm();
ActionEnum action = ic.getMethod().getAnnotation(AccessControl.class).action();
if(!checkAuth(realm, action)){
return bean.getClass().getMethod("cancel").invoke(bean);
}
return ic.proceed();
}
здесь вы можете разорвать цепь метод и вызывать то, что вы хотите.
return bean.getClass(). GetMethod ("cancel"). Invoke (bean);
во время отладки в затмении, попробуйте проверить, что этот «ic.proceed()» возвращался, а метод в моем компоненте был выполнен. Интересно, что он возвращает «выполнение метода». позвольте мне попробовать это и ... =)
У меня также были проблемы с инъекцией зарегистрированного пользователя. «нормальный путь» не работал, если у вас есть такая же проблема, пытаясь впрыснуть то, что вам нужно, попробуйте следующее:
@Inject @LoggedUser Экземпляр зарегистрированUser;
жаль, это было переведено на английский с помощью Google, надеюсь, вы получите идею =)
спасибо, что помогает. давая попытку сопоставления страницы jsf validator и/или web.xml. –