03 September 2007

Accessing Return Values from EJB Interceptors

Continuing from my last posting regarding the application of EJB3 interceptors to existing applications, there's another interesting tidbit regarding how to access the return value of an EJB method call in an interceptor.

Thanks to some sage advice from members of our EJB team (who have authored a simply outstanding book in my opinion) turns out that you can use a simple pattern like this in your interceptor method:

public Object intercept(InvocationContext ctx) throws Exception {

// do stuff as pre-invoke

// Execute the bean method, or next interceptor in the chain
Object result = ctx.proceed();

// do stuff as post-invoke

// return the result from the handler
return result;

Using this pattern, you have access to the pre and post invoke states of the method call on the bean.

No comments: