- [x] I have searched the [issues](https://github.com/apache/incubator-dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/incubator-dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.6.4

### Steps to reproduce this issue

1. GenericService泛化调用
2. 使用oninvoke、onreturn、onthrow
3. FutureFilter无法正常回调

### Expected Result
StaticContext.getKey(invoker.getUrl(), invocation.getMethodName(), Constants.ON_INVOKE_METHOD_KEY)
返回
com.alibaba.boot.dubbo.demo.consumer.DemoService:1.0.0.sayHello.oninvoke.method

### Actual Result
StaticContext.getKey(invoker.getUrl(), invocation.getMethodName(), Constants.ON_INVOKE_METHOD_KEY)
返回
com.alibaba.boot.dubbo.demo.consumer.DemoService:1.0.0.$invoke.oninvoke.method

预期是：

```
        String methodName = invocation.getMethodName();
        if("$invoke".equals(methodName)) {
            Object[] arguments = invocation.getArguments();
            methodName = (String) arguments[0];
        }
```

System.arraycopy(args, 0, params, 1, args.length);
                    }
                } else {
                    params = new Object[]{exception};
                }
                onthrowMethod.invoke(onthrowInst, params);
            } catch (Throwable e) {
                logger.error(invocation.getMethodName() + ".call back method invoke error . callback method :" + onthrowMethod + ", url:" + invoker.getUrl(), e);
            }
        } else {
            logger.error(invocation.getMethodName() + ".call back method invoke error . callback method :" + onthrowMethod + ", url:" + invoker.getUrl(), exception);
        }
    }
    private ConsumerMethodModel.AsyncMethodInfo getAsyncMethodInfo(Invoker<?> invoker, Invocation invocation) {
        final ConsumerModel consumerModel = ApplicationModel.getConsumerModel(invoker.getUrl().getServiceKey());
        if (consumerModel == null) {
            return null;
        }
        ConsumerMethodModel methodModel = consumerModel.getMethodModel(invocation.getMethodName());
        if (methodModel == null) {
            return null;
        }
        final ConsumerMethodModel.AsyncMethodInfo asyncMethodInfo = methodModel.getAsyncInfo();
        if (asyncMethodInfo == null) {
            return null;
        }
        return asyncMethodInfo;
    }
}