### 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)
```
}
        
        else if (isMakingGenericCall(generic, invocation)) {
            Object[] args = (Object[]) invocation.getArguments()[2];
            if (ProtocolUtils.isJavaGenericSerialization(generic)) {
                for (Object arg : args) {
                    if (byte[].class != arg.getClass()) {
                        error(generic, byte[].class.getName(), arg.getClass().getName());
                    }
                }
            } else if (ProtocolUtils.isBeanGenericSerialization(generic)) {
                for (Object arg : args) {
                    if (!(arg instanceof JavaBeanDescriptor)) {
                        error(generic, JavaBeanDescriptor.class.getName(), arg.getClass().getName());
                    }
                }
            }
            invocation.setAttachment(
                GENERIC_KEY, invoker.getUrl().getParameter(GENERIC_KEY));
        }
        return invoker.invoke(invocation);
    }
    private void error(String generic, String expected, String actual) throws RpcException {
        throw new RpcException("Generic serialization [" + generic + "] only support message type " + expected + " and your message type is " + actual);
    }
    @Override
    public void onResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) {
        String generic = invoker.getUrl().getParameter(GENERIC_KEY);
        String methodName = invocation.getMethodName();
        Class<?>[] parameterTypes = invocation.getParameterTypes();