为什么dubbo服务器返回null用@reference为null

阅读(1578)
阅读背景:1 您需要了解什么是dubbo,如何使用dubbo拆分服务
& & & & & & & & 2:您需要了解如何将所需要的服务注册到dubbo
& & &&&&&&&&&& &3: 您还可能需要了解如何使用zookeeper
本章主题:针对一个具体的例子,来说明,如何调用dubbo的服务。
首先: 先保证您引入了以下的jar包:
如果您的工程不是Mavn工程,并且您是在Storm之中调用的dubbo服务。那么以上的jar包是您需要放在工程之中的几个jar包
请参看右图,在其中我,我做了一个简易的区分:
dubbo: 所有duboo相关的jar包
lib: 所有Storm 所需要的jar包
NotStorm: 并不是Storm 所需要的jar包
Spring: 所有包含Spring的jar包
其次:请您务必配置好 &application.xml 的文件。一个具体的示例如下。
&?xml&version=&1.0&&encoding=&UTF-8&?&
&beans&xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&&xmlns:dubbo=&/schema/dubbo&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
&&&&http://www.springframework.org/schema/beans/spring-beans.xsd&&&&&&&&
&&&&/schema/dubbo&&&&&&&&
&&&&/schema/dubbo/dubbo.xsd
&!--&消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样&--&
&dubbo:application&name=&service.mq.kafka&&/&
&!--&使用zookeeper注册中心暴露发现服务地址&223.203.216.238&192.168.50.247:2181?backup=192.168.50.248:.50.249:2181&--&
&dubbo:registry
address=&zookeeper://192.168.50.247:2181?backup=192.168.50.248:.50.249:2181&&/&
&!--&&dubbo:registry&address=&zookeeper://192.168.36.238:2181?backup=192.168.36.239:.36.240:.36.241:.36.242:2181&&
&!--&&dubbo:registry&address=&zookeeper://192.168.50.247:2181?backup=192.168.50.248:.50.249:2181&&
&!--&用dubbo协议在1500端口暴露服务&--&
&dubbo:protocol&name=&dubbo&&port=&20000&&/&
&!--接口&--&
&!--&&dubbo:service&timeout=&5000&&interface=&com.wooboo.service.kafka.KafkaServie&&
ref=&KafkaServiceimpl&&/&&--&
&!--实现类&--&
&!--&&bean&id=&KafkaServiceimpl&&class=&com.wooboo.service.kafka.KafkaServiceimpl&&
&dubbo:reference&id=&KafkaService&
interface=&com.wooboo.service.kafka.KafkaServie&&/&
&dubbo:reference&id=&productCacheService&
interface=&com.wooboo.service.product.service.ProductService&&timeout=&50000&&/&
&dubbo:reference&id=&productCategoryService&&interface=&com.wooboo.service.productcategory.service.ProductCategoryService&&timeout=&5000&/&
& 在以上的配置中: &
& 1 reference id: & 标识着具体的project 引用之中class的名称。 &
& 2 interface: 表示着通过dubbo服务,给我们提供的接口的名称,在这里,通常需要将接口的名称注册到zookeeper服务之中。
& 3 zookeeper地址:
&dubbo:registry
address=&zookeeper://192.168.50.247:2181?backup=192.168.50.248:.50.249:2181&&/&
& 下面,请参看我们的一个具体小程序:依据商品id,得到商品的其他信息
&&&&& & &&&&
import&java.util.S
import&org.springframework.context.support.ClassPathXmlApplicationC
import&mon.bean.ProductC
import&mon.bean.ProductCategoryC
import&com.wooboo.service.kafka.KafkaS
import&com.wooboo.service.product.service.ProductS
import&com.wooboo.service.productcategory.service.ProductCategoryS
public&class&TestDubbo&{
public&static&ClassPathXmlApplicationContext&context&=&
context&=&new&ClassPathXmlApplicationContext(
new&String[]&{&&applicationContext.xml&&});
context.start();
public&static&void&main(String[]&args)&throws&Exception&{
//&商品的Service
ProductService&productService&=&(ProductService)&context
.getBean(&productCacheService&);
//&商品分类的Service
ProductCategoryService&categoryService&=&(ProductCategoryService)&context
.getBean(&productCategoryService&);
long&goodsid&=&627L;
ProductCache&cache&=&productService.getProduct(goodsid);
Long&productCategoryId&=&cache.getProductCategoryId();
ProductCategoryCache&categoryCache&=&categoryService
.getProductCategory(productCategoryId);
long&parrent&=&categoryCache.getParent();
Set&Long&&child&=&categoryCache.getChildren();
System.err.println(parrent);
public&static&void&p(Object&o)&{
System.err.println(o.toString());
& &在这个小程序之中,请注意本地我们的&
ProductCategoryService
& &需要在本地有这个class类存在。在方法的调用过程之中,getBean()中传递的是我们在 xml文件之中配置的id名称。
& & 到此,一个小的服务调用就完成了。 至于,如何向dubbo注册服务,提供Service,还请您自行GOOGLE。原文链接:
阅读排行榜使用mybatis延迟加载时,因为接口返回的是代理对象,导致dubbo序列化后属性值全部为null
[问题点数:100分,结帖人linminqin]
使用mybatis延迟加载时,因为接口返回的是代理对象,导致dubbo序列化后属性值全部为null
[问题点数:100分,结帖人linminqin]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。dubbo接口调用成功了,但是返回为null - 开源中国社区
当前访客身份:游客 [
当前位置:
你好,想跟你请教个问题:
dubbo接口正常调用成功了,但是返回为null,实际上dubbo是有返回值的,请问这可能是哪块有问题。
我使用的是注解方式调用,而且已配置了版本号。
共有2个答案
<span class="a_vote_num" id="a_vote_num_
1.可能是有多套服务端在运行,调用到了别的服务器,而非你认为的服务器
2.有些对象序列化或继承结构的问题会导致获取值为null,例如:父类和子类都有ID属性,父类和子类的ID值不一致(例如父类ID为null,子类正常值),在调用完成反序列化时,只会调用一次setId的方法,此时会造成ID为null,其他属性如果有如此结构也会发生该问题
--- 共有 3 条评论 ---
: 楼主, 你的问题解决了吗? 我遇到和你一样的问题
(3个月前)&nbsp&
你的这个问题解决了吗
(8个月前)&nbsp&
目前你说的两种情况和我们这边的都没关系。
1、已经肯定是调到服务提供者了,因为目前只有单一的提供者。
2、dubbo之间数据传输都是字符串,基本上没用到对象。
(9个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
同样的代码
String id = idService.getId(); //同样的代码第一次调用返回为空
id = idService.getId(); //代码中再执行一次就有返回值了
这个问题的解决, 还没有思路. 现在怀疑是不是dubbo的问题.&
更多开发者职位上
有什么技术问题吗?
右手残废的其它问题
类似的话题114网址导航

我要回帖

更多关于 服务端错误 null 的文章

 

随机推荐