{
try
{
// prepare for invocation
this.onBeforeInvocation(wsInvocation);
final ServiceEndpointContainer ejbContainer = this.getEjb3Container();
final InvocationContextCallback invocationCallback = new EJB3InvocationContextCallback(wsInvocation);
final Class<?> implClass = ejbContainer.getServiceImplementationClass();
final Method seiMethod = wsInvocation.getJavaMethod();
final Method implMethod = this.getImplMethod(implClass, seiMethod);
final Object[] args = wsInvocation.getArgs();
// invoke method
final Object retObj = ejbContainer.invokeEndpoint(implMethod, args, invocationCallback);
wsInvocation.setReturnValue(retObj);
}
catch (Throwable t)
{
this.log.error("Method invocation failed with exception: " + t.getMessage(), t);