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
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:
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.
When I set
pathin ServiceConfig orcontextpathin 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
<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:versionas the key when putting ProviderModel:but use
group/path:versionto get, as showed above.I think to unify to
pathwould solve this problem.