### Environment

* Dubbo version: 3.1
* Operating System version: mac m1
* Java version: 1.8

### Steps to reproduce this issue

1. Use the following code to make a generalization call of the bean mode

2. ```java
     public interface DemoService {
       String sayHello(String name);
   }
   ```

   

3. ```java
   ReferenceConfig<GenericService> referenceConfig = new ReferenceConfig<>();
       referenceConfig.setInterface(DemoService.class.getCanonicalName());
       applicationConfig.setRegistry(registryConfig);
       referenceConfig.setApplication(applicationConfig);
       referenceConfig.setGeneric(GENERIC_SERIALIZATION_BEAN);
       GenericService genericService = referenceConfig.get();
   JavaBeanDescriptor result = (JavaBeanDescriptor)genericService.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{JavaBeanSerializeUtil.serialize(null)});
   ```

### Expected Behavior

call success

### Actual Behavior

If there is an exception, please attach the exception trace:

```
Caused by: java.lang.NullPointerException
	at org.apache.dubbo.rpc.filter.GenericImplFilter.invoke(GenericImplFilter.java:126)
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:327)
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:194)
	at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:78)
	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:379)
	at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:81)
```
throw new RpcException(e.getMessage(), e);
                }
            } else if (appResponse.getException() instanceof com.alibaba.dubbo.rpc.service.GenericException) {
                com.alibaba.dubbo.rpc.service.GenericException exception = (com.alibaba.dubbo.rpc.service.GenericException) appResponse.getException();
                try {
                    String className = exception.getExceptionClass();
                    DefaultSerializeClassChecker classChecker = moduleModel.getApplicationModel()
                        .getFrameworkModel().getBeanFactory().getBean(DefaultSerializeClassChecker.class);
                    Class<?> clazz = classChecker.loadClass(Thread.currentThread().getContextClassLoader(), className);
                    Throwable targetException = null;
                    Throwable lastException = null;
                    try {
                        targetException = (Throwable) clazz.getDeclaredConstructor().newInstance();
                    } catch (Throwable e) {
                        lastException = e;
                        for (Constructor<?> constructor : clazz.getConstructors()) {
                            try {
                                targetException = (Throwable) constructor.newInstance(new Object[constructor.getParameterTypes().length]);
                                break;
                            } catch (Throwable e1) {
                                lastException = e1;
                            }
                        }
                    }
                    if (targetException != null) {
                        try {
                            Field field = Throwable.class.getDeclaredField("detailMessage");
                            if (!field.isAccessible()) {
                                field.setAccessible(true);
                            }