当前位置: 首页>>代码示例>>Java>>正文


Java RpcUtils.getArguments方法代码示例

本文整理汇总了Java中com.alibaba.dubbo.rpc.support.RpcUtils.getArguments方法的典型用法代码示例。如果您正苦于以下问题:Java RpcUtils.getArguments方法的具体用法?Java RpcUtils.getArguments怎么用?Java RpcUtils.getArguments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.alibaba.dubbo.rpc.support.RpcUtils的用法示例。


在下文中一共展示了RpcUtils.getArguments方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doList

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public List<Invoker<T>> doList(Invocation invocation) {
    if (forbidden) {
        throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "Forbid consumer " +  NetUtils.getLocalHost() + " access service " + getInterface().getName() + " from registry " + getUrl().getAddress() + " use dubbo version " + Version.getVersion() + ", Please check registry access list (whitelist/blacklist).");
    }
    List<Invoker<T>> invokers = null;
    Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local reference
    if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {
        String methodName = RpcUtils.getMethodName(invocation);
        Object[] args = RpcUtils.getArguments(invocation);
        if(args != null && args.length > 0 && args[0] != null
                && (args[0] instanceof String || args[0].getClass().isEnum())) {
            invokers = localMethodInvokerMap.get(methodName + "." + args[0]); // 可根据第一个参数枚举路由
        }
        if(invokers == null) {
            invokers = localMethodInvokerMap.get(methodName);
        }
        if(invokers == null) {
            invokers = localMethodInvokerMap.get(Constants.ANY_VALUE);
        }
        if(invokers == null) {
            Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator();
            if (iterator.hasNext()) {
                invokers = iterator.next();
            }
        }
    }
    return invokers == null ? new ArrayList<Invoker<T>>(0) : invokers;
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:29,代码来源:RegistryDirectory.java

示例2: doList

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public List<Invoker<T>> doList(Invocation invocation) {
    if (forbidden) {
        // 1. 没有服务提供者 2. 服务提供者被禁用
        throw new RpcException(RpcException.FORBIDDEN_EXCEPTION,
            "No provider available from registry " + getUrl().getAddress() + " for service " + getConsumerUrl().getServiceKey() + " on consumer " +  NetUtils.getLocalHost()
                + " use dubbo version " + Version.getVersion() + ", may be providers disabled or not registered ?");
    }
    List<Invoker<T>> invokers = null;
    Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local reference
    if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {
        String methodName = RpcUtils.getMethodName(invocation);
        Object[] args = RpcUtils.getArguments(invocation);
        if (args != null && args.length > 0 && args[0] != null
                && (args[0] instanceof String || args[0].getClass().isEnum())) {
            invokers = localMethodInvokerMap.get(methodName + "." + args[0]); // 可根据第一个参数枚举路由
        }
        if (invokers == null) {
            invokers = localMethodInvokerMap.get(methodName);
        }
        if (invokers == null) {
            invokers = localMethodInvokerMap.get(Constants.ANY_VALUE);
        }
        if (invokers == null) {
            Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator();
            if (iterator.hasNext()) {
                invokers = iterator.next();
            }
        }
    }
    return invokers == null ? new ArrayList<Invoker<T>>(0) : invokers;
}
 
开发者ID:l1325169021,项目名称:github-test,代码行数:32,代码来源:RegistryDirectory.java

示例3: doList

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public List<Invoker<T>> doList(Invocation invocation) {
    if (forbidden) {
        throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "Forbid consumer " + NetUtils.getLocalHost() + " access service " + getInterface().getName() + " from registry " + getUrl().getAddress() + " use dubbo version " + Version.getVersion() + ", Please check registry access list (whitelist/blacklist).");
    }
    List<Invoker<T>> invokers = null;
    Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local reference
    if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {
        String methodName = RpcUtils.getMethodName(invocation);
        Object[] args = RpcUtils.getArguments(invocation);
        if (args != null && args.length > 0 && args[0] != null
                && (args[0] instanceof String || args[0].getClass().isEnum())) {
            invokers = localMethodInvokerMap.get(methodName + "." + args[0]); // 可根据第一个参数枚举路由
        }
        if (invokers == null) {
            invokers = localMethodInvokerMap.get(methodName);
        }
        if (invokers == null) {
            invokers = localMethodInvokerMap.get(Constants.ANY_VALUE);
        }
        if (invokers == null) {
            Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator();
            if (iterator.hasNext()) {
                invokers = iterator.next();
            }
        }
    }
    return invokers == null ? new ArrayList<>(0) : invokers;
}
 
开发者ID:linux-china,项目名称:dubbo3,代码行数:29,代码来源:RegistryDirectory.java

示例4: doList

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public List<Invoker<T>> doList(Invocation invocation) {
    if (forbidden) {
        throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "Forbid consumer " +  NetUtils.getLocalHost() + " access service " + getInterface().getName() + " from registry " + getUrl().getAddress() + " use dubbo version " + Version.getVersion() + ", Please check registry access list (whitelist/blacklist).");
    }
    List<Invoker<T>> invokers = null;
    // Map<methodName, Invoker> cache service method to invokers mapping.
    Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local reference
    if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {
        String methodName = RpcUtils.getMethodName(invocation);
        Object[] args = RpcUtils.getArguments(invocation);
        //如果第一个参数是枚举类型
        if(args != null && args.length > 0 && args[0] != null
                && (args[0] instanceof String || args[0].getClass().isEnum())) {
            invokers = localMethodInvokerMap.get(methodName + "." + args[0]); // 可根据第一个参数枚举路由
        }
        //直接从缓存映射表中获取
        if(invokers == null) {
            invokers = localMethodInvokerMap.get(methodName);
        }
        //获得任意匹配的值
        if(invokers == null) {
            invokers = localMethodInvokerMap.get(Constants.ANY_VALUE);
        }
        //如果都没有配置的话就取映射表中的最后一项
        if(invokers == null) {
            Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator();
            if (iterator.hasNext()) {
                invokers = iterator.next();
            }
        }
    }
    return invokers == null ? new ArrayList<Invoker<T>>(0) : invokers;
}
 
开发者ID:DoubleSmile,项目名称:dubbo-learning,代码行数:34,代码来源:RegistryDirectory.java

示例5: doList

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public List<Invoker<T>> doList(Invocation invocation) {
	if (forbidden) {
		String host = ConfigUtils.getProperty("dubbo.protocol.host", NetUtils.getLocalHost());
		throw new JahhanException(JahhanErrorCode.FORBIDDEN_EXCEPTION,
				"No provider available from registry " + getUrl().getAddress() + " for service "
						+ getConsumerUrl().getServiceKey() + " on consumer " + host + " use dubbo version "
						+ Version.getVersion() + ", may be providers disabled or not registered ?");
	}
	List<Invoker<T>> invokers = null;
	Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local
																					// reference
	if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {
		String methodName = RpcUtils.getMethodName(invocation);
		Object[] args = RpcUtils.getArguments(invocation);
		if (args != null && args.length > 0 && args[0] != null
				&& (args[0] instanceof String || args[0].getClass().isEnum())) {
			invokers = localMethodInvokerMap.get(methodName + "." + args[0]); // 可根据第一个参数枚举路由
		}
		if (invokers == null) {
			invokers = localMethodInvokerMap.get(methodName);
		}
		if (invokers == null) {
			invokers = localMethodInvokerMap.get(Constants.ANY_VALUE);
		}
		if (invokers == null) {
			Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator();
			if (iterator.hasNext()) {
				invokers = iterator.next();
			}
		}
	}
	return invokers == null ? new ArrayList<Invoker<T>>(0) : invokers;
}
 
开发者ID:nince-wyj,项目名称:jahhan,代码行数:34,代码来源:RegistryDirectory.java


注:本文中的com.alibaba.dubbo.rpc.support.RpcUtils.getArguments方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。