public interface InvocationContext
Exposes contextual information about the intercepted invocation and operations that enable interceptor methods to control the behavior of the invocation chain.
@AroundInvoke public Object logInvocation(InvocationContext ctx) throws Exception { String class = ctx.getMethod().getDeclaringClass().getName(); String method = ctx.getMethod().getName(); Logger.global.entering(class, method, ctx.getParameters()); try { Object result = ctx.proceed(); Logger.global.exiting(class, method, result); return result; } catch (Exception e) { Logger.global.throwing(class, method, e); throw e; } }
Modifier and Type | Method and Description |
---|---|
java.lang.reflect.Constructor<?> |
getConstructor()
Returns the constructor of the target class for which the
AroundConstruct interceptor method was invoked. |
java.util.Map<java.lang.String,java.lang.Object> |
getContextData()
Enables an interceptor to retrieve or update the data associated with the invocation by another interceptor, business
method, and/or webservices endpoint in the invocation chain.
|
java.lang.reflect.Method |
getMethod()
Returns the method of the target class for which the interceptor was invoked.
|
java.lang.Object[] |
getParameters()
Returns the parameter values that will be passed to the method or constructor of the target class.
|
java.lang.Object |
getTarget()
Returns the target instance.
|
java.lang.Object |
getTimer()
Returns the timer object associated with a timeout method invocation on the target class, or a null value for
interceptor method types other than
AroundTimeout . |
java.lang.Object |
proceed()
Proceed to the next interceptor in the interceptor chain.
|
void |
setParameters(java.lang.Object[] params)
Sets the parameter values that will be passed to the method or constructor of the target class.
|
java.lang.Object getTarget()
AroundConstruct
lifecycle callback interceptor methods, the
getTarget method returns null
if called before the proceed()
method.java.lang.Object getTimer()
AroundTimeout
. For example, when associated with an EJB component
timeout, this method returns Timer
.java.lang.reflect.Method getMethod()
AroundConstruct
lifecycle callback interceptor method.java.lang.reflect.Constructor<?> getConstructor()
AroundConstruct
interceptor method was invoked.
Returns null for interceptor method types other than AroundConstruct
interceptor methods.java.lang.Object[] getParameters()
setParameters(java.lang.Object[])
has been called, getParameters
returns the values to which the parameters have
been set.java.lang.IllegalStateException
- if invoked within a lifecycle callback method that is not an
AroundConstruct
callback.void setParameters(java.lang.Object[] params)
params
- the parameter values, as an arrayjava.lang.IllegalStateException
- if invoked within a lifecycle callback method that is not an
AroundConstruct
callback.java.lang.IllegalArgumentException
- if the types of the given parameter values do not match the types of
the method or constructor parameters, or if the number of parameters supplied does not equal the number of method or
constructor parameters (if the last parameter is a vararg parameter of type T
, it is considered to be
equivalent to a parameter of type T[]
).java.util.Map<java.lang.String,java.lang.Object> getContextData()
javax.xml.rpc.handler.MessageContext
.Map<String,Object>
object will be returned.java.lang.Object proceed() throws java.lang.Exception
proceed
in the last interceptor method in the chain causes the invocation of the target
class method. For AroundConstruct
lifecycle callback interceptor methods, the invocation of proceed
in the last interceptor method in the chain causes the target instance to be created. For all other lifecycle
callback interceptor methods, if there is no callback method defined on the target class, the invocation of proceed
in the last interceptor method in the chain is a no-op.
Return the result of the next method invoked, or a null value if the method has return type void.
java.lang.Exception
- if thrown by target method or interceptor method in call stack