前言:

公司采用dubbo框架作为远程服务调用实现方案,为方便测试,写了个工程,直接调dubbo接口进行测试。遇到了一系列奇怪的问题,故记录于此。

Q:No provider available for the service com.netease.wyxd.xiezhi.client.open.provider.DetectProvider from registry 10.165.124.69:2181 on the consumer 192.168.233.1 using the dubbo version 2.8.4. Please check if the providers have been started and registered.

A:提示我这个ip地址无法调用到服务提供者,先看下dubbo admin上是否存在,确认无问题。哦有个地方,就是服务注册在zk上 默认采用的是机房网络地址(这里机器有私网地址、机房地址、公网地址,机房网络地址主要是为了服务器之间的通信,本地服务调服务器一般是用私网或者公网),由于服务在admin上暴露出来的地址是机房网络地址,所以需要在环境变量上加个配置 -Ddubbo.protocol.host=10.165.124.89  或者在dubbo.properties里面加

我这里的问题比较奇怪 这个消费者的ip并不是我的本机ip 所以我清了一把网络 好了 我的公网地址应该是10.242.111.206 这个才是我正常的ip

 

Q: java.lang.IllegalStateException: Unsupported protocol hessian in notified url

A: 这个查了好久 网上没几个 后来我自己试了 是因为hession.jar包没有加 ==  ORZ...

 

总结一下,主要要加的依赖包有hession.jar 、 dubbo.jar、 zkClient.jar

顺便写下用到的pom

<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>4.0.38</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5-pre8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>com.netease.wyxd.xiezhi</groupId>
<artifactId>client</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.8.4</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- <dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.3</version>
</dependency> -->
<dependency>
<groupId>com.github.commons</groupId>
<artifactId>commons-dubbo-client</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>

 

posted on 2017-03-30 14:49  烦恼你就多看书  阅读(251)  评论(0编辑  收藏  举报