Допустим, у меня есть следующий перехватчик в приложении SEAM:
public class MyInterceptor {
@In
private Monitor myMonitor;
@AroundInvoke
public Object aroundInvoke(InvocationContext ctx) throws Exception {
try {
myMonitor.a();
return ctx.proceed();
}
finally {
myMonitor.b();
}
}
}
myMonitor.a() работает (поэтому монитор вводится правильно), myMonitor.b() не работает, потому что монитор уже равен нулю. документ Seam говорит: «Введенные значения удаляются (т. е. устанавливаются равными нулю) сразу после завершения и вывода метода».
Это то, что происходит? Могу ли я сделать что-то, чтобы сказать SEAM «еще не» «отключить» компонент? Я, конечно, также могу сделать что-то вроде XContext.get(..), но мне интересно, является ли это ошибкой или ошибкой с моей стороны. Спасибо!