使用dubbo2.7.5版本时，我同样也出现了这个问题：
```
java.lang.NullPointerException: null
	at org.apache.dubbo.registry.integration.RegistryProtocol.register(RegistryProtocol.java:178) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:209) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:60) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:143) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:64) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:470) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:315) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:287) ~[dubbo-2.7.5.jar:2.7.5]
	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:205) ~[dubbo-2.7.5.jar:2.7.5]
```
阅读了源码，发现是因为在ServiceRepository类中providers写入提供者信息时没有获取到版本号，写入的Key值也是不带版本号，但是ApplicationModel.getProviderModel(registeredProviderUrl.getServiceKey());获取ProviderModel时，registeredProviderUrl.getServiceKey()是带有版本号值，导致无法从ServiceRepository类中的providers中获取数据而报错。
dubbo以前支持dubbo.provider.version=xxx的方式配置默认版本号，这样就可以不用在xml配置文件或者使用注解时手动指定服务版本。2.7.5版本更新进行改造后该功能缺失引发上述错误，只需要在xml配置文件或使用@Service注解时指定服务版本号version即可。不过还是希望保留该特性以更好的向下兼容。
public void setProtocol(String protocol) {
        this.protocol = protocol;
    }
    public ServiceMetadata getServiceMetadata() {
        return serviceMetadata;
    }
    @Override
    @Parameter(excluded = true)
    public String getPrefix() {
        return DUBBO + ".reference." + interfaceName;
    }
    public void resolveFile() {
        String resolve = System.getProperty(interfaceName);
        String resolveFile = null;
        if (StringUtils.isEmpty(resolve)) {
            resolveFile = System.getProperty("dubbo.resolve.file");
            if (StringUtils.isEmpty(resolveFile)) {
                File userResolveFile = new File(new File(System.getProperty("user.home")), "dubbo-resolve.properties");
                if (userResolveFile.exists()) {
                    resolveFile = userResolveFile.getAbsolutePath();
                }
            }
            if (resolveFile != null && resolveFile.length() > 0) {
                Properties properties = new Properties();
                try (FileInputStream fis = new FileInputStream(new File(resolveFile))) {
                    properties.load(fis);
                } catch (IOException e) {
                    throw new IllegalStateException("Failed to load " + resolveFile + ", cause: " + e.getMessage(), e);
                }
                resolve = properties.getProperty(interfaceName);