【发布时间】:2012-06-15 07:10:27
【问题描述】:
我们可以在来自不同 ejb-jar 的 ejb-jar 中使用基于注释的拦截器吗? 我使用@Logged 示例进行了尝试,但还是坚持了下来。有人可以帮帮我吗?
在 core.jar 中:
@Inherited
@InterceptorBinding
@Retention(RUNTIME)
@Target({METHOD, TYPE})
public @interface Logged {}
和
@Logged
@Interceptor
public class LoggedInterceptor implements Serializable {
private static final long serialVersionUID = 1L;
public LoggedInterceptor() {
}
@AroundInvoke
public Object logMethodEntry(InvocationContext invocationContext)
throws Exception {
System.out.println("Entering method: "
+ invocationContext.getMethod().getName() + " in class "
+ invocationContext.getMethod().getDeclaringClass().getName());
return invocationContext.proceed();
}
}
问题是:如何从另一个 ejb-jar(在企业应用程序中)使用这个拦截器?例如:记录业务方法调用,其中方法可以在不同的模块中找到:
module1.jar:
public class ModuleClass{
@Logged public void doSomething(){...}
}
我也尝试将 感谢您的建议!
【问题讨论】:
标签: java logging glassfish cdi interceptor