diff --git a/dubbo-rpc/src/main/java/com/alibaba/dubbo/rpc/proxy/AbstractProxyFactory.java b/dubbo-rpc/src/main/java/com/alibaba/dubbo/rpc/proxy/AbstractProxyFactory.java index abdc5ac6aa..b62c204013 100644 --- a/dubbo-rpc/src/main/java/com/alibaba/dubbo/rpc/proxy/AbstractProxyFactory.java +++ b/dubbo-rpc/src/main/java/com/alibaba/dubbo/rpc/proxy/AbstractProxyFactory.java @@ -30,16 +30,20 @@ import com.alibaba.dubbo.rpc.service.EchoService; public abstract class AbstractProxyFactory implements ProxyFactory { public T getProxy(Invoker invoker) throws RpcException { - Class[] interfaces; - String[] types = Constants.COMMA_SPLIT_PATTERN.split(invoker.getUrl().getParameter("interfaces", "")); - if (types != null && types.length > 0) { - interfaces = new Class[types.length + 2]; - interfaces[0] = invoker.getInterface(); - interfaces[1] = EchoService.class; - for (int i = 0; i < types.length; i ++) { - interfaces[i + 1] = ReflectUtils.forName(types[i]); + Class[] interfaces = null; + String config = invoker.getUrl().getParameter("interfaces"); + if (config != null && config.length() > 0) { + String[] types = Constants.COMMA_SPLIT_PATTERN.split(config); + if (types != null && types.length > 0) { + interfaces = new Class[types.length + 2]; + interfaces[0] = invoker.getInterface(); + interfaces[1] = EchoService.class; + for (int i = 0; i < types.length; i ++) { + interfaces[i + 1] = ReflectUtils.forName(types[i]); + } } - } else { + } + if (interfaces == null) { interfaces = new Class[] {invoker.getInterface(), EchoService.class}; } return getProxy(invoker, interfaces);