使用dubbo调取服务失败时,想用Mock="true"实现当服务异常时,使用本地实现类做补偿该如何配置?

本人刚接触dubbo,想针对dubbo调取服务因网络等故障失败时这一异常做相应的补偿机制------用本地接口实现类代替远程接口实现类,在网上看到有用mock=“ture”的配置实现,尝试了一通,但是失败了,报如下错误:

java.lang.IllegalStateException: Failed to check the status of the service com.dcits.jk.TJCount. No provider available for the service com.dcits.jk.TJCount from the url zookeeper://192.168.1.130:2181/com.alibaba.dubbo.registry.RegistryService?application=consumer&dubbo=2.5.3&interface=com.dcits.jk.TJCount&methods=gettotal&mock=true&pid=10528&side=consumer&timestamp=1513235485333 to the consumer 192.168.1.116 use dubbo version 2.5.3
at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:420) ~[dubbo-2.5.3.jar:2.5.3]
at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:300) ~[dubbo-2.5.3.jar:2.5.3]
at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:138) ~[dubbo-2.5.3.jar:2.5.3]

我的服务接口如下:

public interface TJCount {
    public int gettotal() throws InterruptedException;
}
当服务调取失败时,本地接口实现类如下:
public class TJCountMock implements TJCount {
    public TJCountMock(){
    }
    public int gettotal() throws InterruptedException{
        return 10;
    }
}

消费者接口配置如下:

<dubbo:reference id="tjcount" interface="com.dcits.jk.TJCount" mock="true"/>

请各位赐教。。

阅读 4.2k
1 个回答
新手上路,请多包涵

试试 <dubbo:reference id="tjcount" interface="com.dcits.jk.TJCount" mock="com.foo.bar.TJCountMock"/>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题