Я создал перехватчик с помощью метода, аннотированного с помощью @AroundInvoke, для вызова методов журнала и связанных с ним таймингов. Это основано на Richard Hightowers отлично блог на КДИ АОПЕ http://java.dzone.com/articles/cdi-aop):Регистрация идентификатора сеанса пользователя с помощью перехватчика javax
@AroundInvoke
public Object log(InvocationContext ctx) throws Exception {
Logger logger = Logger.getLogger(ctx.getTarget().getClass().getName());
logger.trace("ENTERING : "+ctx.getMethod());
long start = System.currentTimeMillis();
Object returnMe = ctx.proceed();
long executionTime = System.currentTimeMillis() - start;
logger.trace("EXITING : "+ctx.getMethod()+":"+executionTime+"ms");
return returnMe;
}
Я хотел бы войти пользователь идентификатор сеанса, так что я могу легко проанализировать пути пользователей через приложение. Как получить доступ к сеансу пользователя?
Я посмотрел на инъекцию SessionContext, но не смог понять, как использовать API для извлечения этого значения.
Я просмотрел log4j MDC, но я надеялся избежать необходимости добавления фильтра сервлета.
Вы используете только сервлеты + jsp или JSF? – dcernahoschi
Мы используем JSF 2, EJB 3.1 и JPA 2 – Troup
Итак, вам нужен идентификатор сеанса HTTP или идентификатор сеанса EJB? –