java.lang.IllegalStateException: Unsupported protocol rest in notified url: rest://192.168.79.1:8094///com.jt.dubbo.service.CartDubboService?accepts=500&anyhost=true&application=jt-cart&dubbo=2.8.4&extension=com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter&generic=false&interface=com.jt.dubbo.service.CartDubboService&methods=saveCart,queryByUserId,updateNum,deleteCart&pid=3116&revision=0.0.1-SNAPSHOT&server=servlet&side=provider&threads=500&timeout=10000&timestamp=1523929571277 from registry 192.168.43.135:2181 to consumer 192.168.79.1, supported protocol: [dubbo, hessian, http, injvm, mock, redis, registry, rmi, thrift]
at com.alibaba.dubbo.registry.integration.RegistryDirectory.toInvokers(RegistryDirectory.java:372)
at com.alibaba.dubbo.registry.integration.RegistryDirectory.refreshInvoker(RegistryDirectory.java:224)
at com.alibaba.dubbo.registry.integration.RegistryDirectory.notify(RegistryDirectory.java:195)
at com.alibaba.dubbo.registry.support.AbstractRegistry.notify(AbstractRegistry.java:449)
at com.alibaba.dubbo.registry.support.FailbackRegistry.doNotify(FailbackRegistry.java:273)
at com.alibaba.dubbo.registry.support.FailbackRegistry.notify(FailbackRegistry.java:259)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.access$400(ZookeeperRegistry.java:43)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry$3.childChanged(ZookeeperRegistry.java:159)
at com.alibaba.dubbo.remoting.zookeeper.zkclient.ZkclientZookeeperClient$2.handleChildChange(ZkclientZookeeperClient.java:86)
at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568)
at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
2018-04-17 09:46:12,029 [ZkClient-EventThread-21-192.168.43.135:2181,192.168.43.136:2181,192.168.43.137:2181] [com.alibaba.dubbo.registry.integration.RegistryDirectory]-[ERROR] urls to invokers error .invokerUrls.size :1, invoker.size :0. urls :[rest://192.168.79.1:8094///com.jt.dubbo.service.CartDubboService?accepts=500&anyhost=true&application=jt-cart&dubbo=2.8.4&extension=com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter&generic=false&interface=com.jt.dubbo.service.CartDubboService&methods=saveCart,queryByUserId,updateNum,deleteCart&pid=3116&revision=0.0.1-SNAPSHOT&server=servlet&side=provider&threads=500&timeout=10000&timestamp=1523929571277]
java.lang.IllegalStateException: urls to invokers error .invokerUrls.size :1, invoker.size :0. urls :[rest://192.168.79.1:8094///com.jt.dubbo.service.CartDubboService?accepts=500&anyhost=true&application=jt-cart&dubbo=2.8.4&extension=com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter&generic=false&interface=com.jt.dubbo.service.CartDubboService&methods=saveCart,queryByUserId,updateNum,deleteCart&pid=3116&revision=0.0.1-SNAPSHOT&server=servlet&side=provider&threads=500&timeout=10000&timestamp=1523929571277]
at com.alibaba.dubbo.registry.integration.RegistryDirectory.refreshInvoker(RegistryDirectory.java:229)
at com.alibaba.dubbo.registry.integration.RegistryDirectory.notify(RegistryDirectory.java:195)
at com.alibaba.dubbo.registry.support.AbstractRegistry.notify(AbstractRegistry.java:449)
at com.alibaba.dubbo.registry.support.FailbackRegistry.doNotify(FailbackRegistry.java:273)
at com.alibaba.dubbo.registry.support.FailbackRegistry.notify(FailbackRegistry.java:259)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.access$400(ZookeeperRegistry.java:43)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry$3.childChanged(ZookeeperRegistry.java:159)
at com.alibaba.dubbo.remoting.zookeeper.zkclient.ZkclientZookeeperClient$2.handleChildChange(ZkclientZookeeperClient.java:86)
at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568)
at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)

提供端服务配置
<dubbo:application name="helllo" /> <!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://192.168.163.131:2181?backup=192.168.163.131:2182,192.168.163.131:2183" />
<dubbo:service interface="com.jt.dubbo.service.CartDubboService" 
ref="cartDubboService" protocol="rest" timeout="10000"/>

<bean id="cartDubboService" class="com.jt.cart.service.CartDubboServiceImpl"/>
消费端服务配置
  <dubbo:application name="hi"/> <dubbo:registry address="zookeeper://192.168.43.135:2181?backup=192.168.43.136:2181,192.168.43.137:2181" />
 
    <dubbo:reference check="false" id="cartDubboService" interface="com.jt.dubbo.service.CartDubboService" timeout="10000"/>
</beans>dubbo-admin 都能正常显示出服务和消费

解决方案 »

  1.   

    对于上述问题,只需要在服务消费端配置引入服务时,设置指定的支持的协议即可,例如下面的标红处<dubbo:reference id="xxxService" interface="cn.xxx.xxx.xxxxService"
                         version="${dubbo.version}" check="false" protocol="dubbo"/>
      

  2.   

    keneng
      

  3.   

    可能是缺少rest协议相关jar包,消费者加上试试
    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.0.19.Final</version>
    </dependency>
    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>3.0.19.Final</version>
    </dependency>