dubbo泛化调用(参数为bean)
public static Object dubbogeneric (String applicationName, String interfaceName, String dubboGroup, String dubboVersion, String method, String className, String param) { // 普通编码配置方式 ApplicationConfig application = new ApplicationConfig(); application.setName(applicationName); // 连接注册中心配置 RegistryConfig registry = new RegistryConfig(); registry.setAddress("zookeeper://x.x.x.x:2181"); ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>(); reference.setApplication(application); reference.setRegistry(registry); reference.setInterface(interfaceName); reference.setGroup(dubboGroup); reference.setVersion(dubboVersion); // 声明为泛化接口 reference.setGeneric(true); ReferenceConfigCache cache = ReferenceConfigCache.getCache(); GenericService genericService = cache.get(reference); //基本类型以及Date,List,Map等不需要转换,直接调用 String[] parameterTypes = new String[]{className}; Map params = JSON.parseObject(param); params.put("class", className); Object result = genericService.$invoke(method, parameterTypes,new Object[]{params}); return result; }