code: @Override
      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          if (target == null) {
              target = JndiUtils.lookup(name);
          }
          return method.invoke(target, args);
      }
docs: Resolves the JNDI object upon invoking any method on the associated Proxy
  
  @param proxy  proxy
  @param method method
  @param args   arguments
  @return return value
  @throws Throwable in case of failures