When I set `path` in ServiceConfig or `contextpath` in ProtocolConfig, RestProtocol throws NPE on this line:
https://github.com/apache/incubator-dubbo/blob/master/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java#L93
```java
Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInstance().getClass();
```

<dubbo:service path="test" interface="org.apache.dubbo.samples.rest.api.facade.UserRestService" ref="userRestService"
                   protocol="rest" validation="true"/>

This is because we use `group/interface:version` as the key when putting ProviderModel:
```java
Application.initProviderModel(group/interface:version, providerModel)
```
but use `group/path:version` to get, as showed above.

I think to unify to `path` would solve this problem.

ConfigManager.getInstance().clear();
    }
    @Test
    public void testExport() throws Exception {
        service.export();
        assertThat(service.getExportedUrls(), hasSize(1));
        URL url = service.toUrl();
        assertThat(url.getProtocol(), equalTo("mockprotocol2"));
        assertThat(url.getPath(), equalTo(DemoService.class.getName()));
        assertThat(url.getParameters(), hasEntry(Constants.ANYHOST_KEY, "true"));
        assertThat(url.getParameters(), hasEntry(Constants.APPLICATION_KEY, "app"));
        assertThat(url.getParameters(), hasKey(Constants.BIND_IP_KEY));
        assertThat(url.getParameters(), hasKey(Constants.BIND_PORT_KEY));
        assertThat(url.getParameters(), hasEntry(Constants.DEFAULT_KEY + "." + Constants.EXPORT_KEY, "true"));
        assertThat(url.getParameters(), hasEntry("echo.0.callback", "false"));
        assertThat(url.getParameters(), hasEntry(Constants.GENERIC_KEY, "false"));
        assertThat(url.getParameters(), hasEntry(Constants.INTERFACE_KEY, DemoService.class.getName()));
        assertThat(url.getParameters(), hasKey(Constants.METHODS_KEY));
        assertThat(url.getParameters().get(Constants.METHODS_KEY), containsString("echo"));
        assertThat(url.getParameters(), hasEntry(Constants.SIDE_KEY, Constants.PROVIDER));
        Mockito.verify(protocolDelegate).export(Mockito.any(Invoker.class));
    }
    @Test
    public void testProxy() throws Exception {
        service2.export();
        assertThat(service2.getExportedUrls(), hasSize(1));
        assertEquals(2, TestProxyFactory.count); 
    }
    @Test
    public void testDelayExport() throws Exception {