* Dubbo version: 3.2.5
* Operating System version: windows11
* Java version: 17

If the streaming communication mode StreamObserver generic parameter is also generic, an error "INTERNAL: Call aborted cause client exception" will be reported during runtime.

---

streaming通信模式StreamObserver泛型参数如果也是泛型的话在运行的时候会报错“INTERNAL : Call aborted cause client exception”
具体看代码截图
![1700016850144](https://github.com/apache/dubbo/assets/33255974/f9c5dd27-e718-4080-ac75-c5d88ee0e79e)
![1700016959488](https://github.com/apache/dubbo/assets/33255974/6475ea78-1006-4c39-9f34-cf9bc465c1f2)

String serializeName = UrlUtils.serializationOrDefault(url);
        Collection<String> allSerialize = UrlUtils.allSerializations(url);
        return new ReflectionPackableMethod(methodDescriptor, url, serializeName, allSerialize);
    }
    static boolean isStreamType(Class<?> type) {
        return StreamObserver.class.isAssignableFrom(type) || GRPC_STREAM_CLASS.equalsIgnoreCase(type.getName());
    }
    /**
     * Determine if the request and response instance should be wrapped in Protobuf wrapper object
     *
     * @return true if the request and response object is not generated by protobuf
     */
    static boolean needWrap(MethodDescriptor methodDescriptor, Class<?>[] parameterClasses, Class<?> returnClass) {
        String methodName = methodDescriptor.getMethodName();
        
        if (CommonConstants.$INVOKE.equals(methodName) || CommonConstants.$INVOKE_ASYNC.equals(methodName)) {
            return true;
        }
        
        if ($ECHO.equals(methodName)) {
            return true;
        }
        boolean returnClassProtobuf = isProtobufClass(returnClass);
        
        if (parameterClasses.length == 0) {
            return !returnClassProtobuf;
        }
        int protobufParameterCount = 0;
        int javaParameterCount = 0;
        int streamParameterCount = 0;