public static Object genericCall()

in src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java [39:73]


    public static Object genericCall(String interfaceName, String group,
                                     String version, String methodName, String[] paramTypes,
                                     Object[] paramObjs) {
        if (init.compareAndSet(false, true)) {
            init();
        }
        ReferenceConfig<GenericService> reference;
        reference = addNewReference(interfaceName, group, version);

        try {
            GenericService svc = reference.get();
            logger.info("dubbo generic invoke, service is {}, method is {} , paramTypes is {} , paramObjs is {} , svc" +
                            " is {}.", interfaceName
                    , methodName,paramTypes,paramObjs,svc);
            return svc.$invoke(methodName, paramTypes, paramObjs);
        } catch (Exception e) {
            logger.error("Generic invoke failed",e);
            if (e instanceof RpcException) {
                RpcException e1 = (RpcException)e;
                if (e1.isTimeout()) {
                    return ResultCode.TIMEOUT;
                }
                if (e1.isBiz()) {
                    return ResultCode.BIZERROR;
                }
                if (e1.isNetwork()) {
                    return ResultCode.NETWORKERROR;
                }
                if (e1.isSerialization()) {
                    return ResultCode.SERIALIZATION;
                }
            }
            throw e;
        }
    }