Class AbstractInvoker

java.lang.Object
org.apache.cxf.service.invoker.AbstractInvoker
All Implemented Interfaces:
Invoker
Direct Known Subclasses:
BeanInvoker, FactoryInvoker

public abstract class AbstractInvoker extends Object implements Invoker
Abstract implementation of Invoker.

  • Constructor Details

    • AbstractInvoker

      public AbstractInvoker()
  • Method Details

    • invoke

      public Object invoke(Exchange exchange, Object o)
      Specified by:
      invoke in interface Invoker
    • adjustMethodAndParams

      protected Method adjustMethodAndParams(Method m, Exchange ex, List<Object> params, Class<?> serviceObjectClass)
    • invoke

      protected Object invoke(Exchange exchange, Object serviceObject, Method m, List<Object> params)
    • checkSuspendedInvocation

      protected void checkSuspendedInvocation(Exchange exchange, Object serviceObject, Method m, List<Object> params, Throwable t)
    • createFault

      protected Fault createFault(Throwable ex, Method m, List<Object> params, boolean checked)
    • performInvocation

      protected Object performInvocation(Exchange exchange, Object serviceObject, Method m, Object[] paramArray) throws Exception
      Throws:
      Exception
    • insertExchange

      public Object[] insertExchange(Method method, Object[] params, Exchange context)
    • getServiceObject

      public abstract Object getServiceObject(Exchange context)
      Creates and returns a service object depending on the scope.
    • releaseServiceObject

      public void releaseServiceObject(Exchange context, Object obj)
      Called when the invoker is done with the object. Default implementation does nothing.
      Parameters:
      context -
      obj -
    • isJdkDynamicProxy

      public static boolean isJdkDynamicProxy(Object object)
      Return whether the given object is a J2SE dynamic proxy.
      Parameters:
      object - the object to check
      See Also:
    • getMostSpecificMethod

      public static Method getMostSpecificMethod(Method method, Class<?> targetClass)
      Given a method, which may come from an interface, and a targetClass used in the current AOP invocation, find the most specific method if there is one. E.g. the method may be IFoo.bar() and the target class may be DefaultFoo. In this case, the method may be DefaultFoo.bar(). This enables attributes on that method to be found.
      Parameters:
      method - method to be invoked, which may come from an interface
      targetClass - target class for the current invocation. May be null or may not even implement the method.
      Returns:
      the more specific method, or the original method if the targetClass doesn't specialize it or implement it or is null