docs: public Object ejbPreInvoke(Method method, Map<String, Object> context)
                      throws RemoteException
      {
          // Validate the state, and input parameters
          if (ivMethod != null)
          {
              throw new IllegalStateException("WSEJBEndpointManager.ejbPreInvoke called previously : " +
                                              ivMethod.getName());
          }
          if (method == null)
          {
              throw new IllegalArgumentException("WSEJBEndpointManager.ejbPreInvoke requires a method");
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "ejbPreInvoke : " + method.getName());
  
          Object[] args = null; // per JACC spec, section 4.6.1.5
          ivMethod = method;
          ivMethodIndex = getMethodIndex(method);
  
          // Get the EJS Deployed Support and save the message context.
          ivMethodContext = new EJSDeployedSupport();
          ivMethodContext.ivContextData = context; // d644886
  
          // Perform normal EJB Container preInvoke processing
          Object bean = container.EjbPreInvoke(this,
                                               ivMethodIndex,
                                               ivMethodContext,
                                               args);
  
          // If the bean has around invoke interceptors on any method, then
          // instead of returning the bean instance, a JIT Deploy generated
          // proxy object is returned, which knows how to invoke the around
          // invoke interceptors, as needed.                                 d497921
          if (bmd.ivWebServiceEndpointProxyClass != null)
          {
              try
              {
                  WSEJBProxy proxy = (WSEJBProxy) bmd.ivWebServiceEndpointProxyClass.newInstance();
                  proxy.ivContainer = container;
                  proxy.ivMethodContext = ivMethodContext;
                  proxy.ivEjbInstance = bean;
                  bean = proxy;
              } catch (Throwable ex)
              {
                  // This should never occur... only if JITDeploy generated a class
                  // that could be loaded, but not used. No sense logging an error,
                  // this must be reported to service for a fix.
                  FFDCFilter.processException(ex, CLASS_NAME + ".ejbPreInvoke", "192", this);
                  throw ExceptionUtil.EJBException
                                  ("Failed to create proxy for Web service endpoint", ex);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "ejbPreInvoke : " + ivMethod.getName() + " : " +
                          bean.getClass().getName());
  
          return bean;
      }